Не можете получить этот код для компиляции, есть идеи? - PullRequest
0 голосов
/ 23 июня 2011

Этот код не хочет компилироваться. Я новичок в программировании на Java. Любая помощь приветствуется. Ошибка говорит о том, что он не может найти символ.

package addressbookexample1;

import java.io.*;
import java.util.Scanner;

public class AddressBookExample1 {

    private Contact[] friends; 
    private int numfriends; 

    // Create an empty AddressBook
    public AddressBookExample1() {
        friends = new Contact[10];
        numfriends = 0;
    }

    // Add a contact that's passed in as a parameter.
    public void addContact(Contact c) {
        friends[numfriends] = c;
        numfriends++;
    }

    // Print out info on all contacts using method Contact class.
    public void printContacts() {
        for (int i = 0; i < numfriends; i++) {
            friends[i].printContact();
        }
    }

    // Returns the number of friends currently in AddressBook
    public int numContacts() {
        return numfriends;
    }


    private int haveContact(String s) {

        for (int i = 0; i < numfriends; i++) {
            if (friends[i].getName().equals(s)) {
                return i;
            }
        }
        return -1;
    }

    // Deletes a contact with name
    public void deleteContact(String s) {

        int place = haveContact(s);
        if (place >= 0) {
            friends[place] = friends[numfriends - 1];
            numfriends--;
        }
    }


    public static void main(String[] args) throws IOException {

        Scanner stdin = new Scanner(System.in);

        // Instantiate AddressBook object
        AddressBook blackbook = new AddressBook();

        // Menu driven loop.
        menu();
        int choice = stdin.nextInt();

        while (choice != 5) {


            if (choice == 1) {

                if (blackbook.numContacts() < 10) {

                    //Reads in all appropriate information.");
                    System.out.println("Enter your friend\'s name:");
                    String name = stdin.next();
                    System.out.println("Enter their age.");
                    int age = stdin.nextInt();
                    System.out.println("Enter their phone number.");
                    int number = stdin.nextInt();
                    System.out.println("Enter the birthday, month on one line, then day on the next.");
                    int mon = stdin.nextInt();
                    int day = stdin.nextInt();


                    blackbook.addContact(new Contact(name, age, number, mon, day));
                } else {
                    System.out.println("Sorry, can not add anyone, your blackbook is full.");
                }
            } 
            else if (choice == 2) {
                System.out.println("What is the name of the contact you want to delete?");
                String name = stdin.next();
                blackbook.deleteContact(name);
            } else if (choice == 3) {
                System.out.println("You have " + blackbook.numContacts() + " contacts.");
            } else if (choice == 4) {
                blackbook.printContacts();
            } else if (choice != 5) {
                System.out.println("Sorry, that was an invalid menu choice, try again.");
            }

            menu();
            choice = stdin.nextInt();
        }

    }

    public static void menu() {
        System.out.println("1.Add a new contact to your address book.");
        System.out.println("2.Delete a contact from your address book.");
        System.out.println("3.Print out the number of contacts you have.");
        System.out.println("4.Print out information of all of your contacts.");
        System.out.println("5.Quit.");
        System.out.println("Enter your menu choice:");
    }
}

Ошибка компилятора Исключение в потоке "main" java.lang.RuntimeException: некомпилируемый исходный код - не удается найти символ символ: класс адресной книги location: class addressbookexample1.AddressBookExample1 at addressbookexample1.AddressBookExample1.main

Ответы [ 6 ]

2 голосов
/ 23 июня 2011

Вы определили это как AddressBookExample1, но пытаетесь создать экземпляр AddressBook.

// Instantiate AddressBook object
AddressBook blackbook = new AddressBook();

Изменить на

AddressBookExample1 blackbook = new AddressBookExample1();
0 голосов
/ 23 июня 2011

Если это пример, должен быть другой код, из которого находится образец, который определяет классы "Контакт" и "Адресная книга"Вы должны убедиться, что вы вводите пример кода точно так, как указано.Может быть, вы изменили имя класса AddressBook на AddressBookExample1?

0 голосов
/ 23 июня 2011

Вы пытаетесь использовать класс AddressBook, но вы определили AddressBookExample1.

0 голосов
/ 23 июня 2011

Глядя на код, похоже, что Контакт может быть недоступен. Попробуйте скомпилировать оба файла Contact.java и этот класс одновременно.

0 голосов
/ 23 июня 2011

Вы не определили класс контакта

0 голосов
/ 23 июня 2011

Похоже, класс Contact отсутствует. Я предполагаю, что это тоже часть примера, и вам необходимо включить его источник в свою сборку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...