Сообщение об ошибке «не удается найти символ» - PullRequest
0 голосов
/ 02 сентября 2011

Я новичок в Java и программировании.Я пользуюсь учебником "Java как программировать".Я решаю упражнение (3.11 стр. 136).В этом упражнении я пытаюсь получить приложение с двумя классами для распечатки информации о зачетной книжке.Предполагается распечатать две строки для каждого из двух объектов класса с информацией: «название курса gradeBook1: CS101 Введение в программирование на Java, инструктор Дональд Дак».Некоторые другие сведения для зачетной книжки 2. Я должен использовать методы get и set, а также использовать конструктор.Сейчас я довольно много работал, не сумев скомпилировать «класс gradeBookTest», который содержит метод main.Я получаю следующее сообщение об ошибке:

aGradeBookTest.java:8: cannot find symbol
symbol  : variable gradebook1
location: class aGradeBookTest
    System.out.printf( "gradeBook1 course name is: emphasized text%s,\n instructor is %s\n", gradeBook1.getCourseName(), gradebook1.getInstructorName() );
                                                                                                          ^
aGradeBookTest.java:9: cannot find symbol
symbol  : method getInstructorname()
location: class aGradeBook
    System.out.printf( "gradebook2 course name is: %s\n, instructor name is: ", gradeBook2.getCourseName(), gradeBook2.getInstructorname() );**

Код для двух классов следующий:

public class aGradeBook
{
    private String courseName;
    private String instructorName;

    public aGradeBook( String name, String iName )
    {
        courseName = name;
        instructorName = iName;
    }

    public void setCourseName( String name )
    {
        courseName = name;
    }

    public String getCourseName()
    {
        return courseName;
    }

    public void setInstructorName(String iName)
    {
        iName = instructorName;
    }

    public String getInstructorName()
    {
        return instructorName;
    }

    public void displayMessage()
    {
        System.out.printf ("Welcome to the gradebook for\n%s!\n", getCourseName() );
    }
}

и:

public class aGradeBookTest
{
    public static void main( String[]args )
    {
        aGradeBook gradeBook1 = new aGradeBook( "CS101 Introduction to Java Programming", "Donald Duck" );
        aGradeBook gradeBook2 = new aGradeBook( "CS102 Data structures in Java", "Tom & Jerry" );

        System.out.printf( "gradeBook1 course name is: %s,\n instructor is %s\n", gradeBook1.getCourseName(), gradebook1.getInstructorName() );
        System.out.printf( "gradebook2 course name is: %s\n, instructor name is: ", gradeBook2.getCourseName(), gradeBook2.getInstructorname() );
    }
}

Может кто-нибудь, пожалуйста, помогитея застрял здесь?

Ответы [ 3 ]

3 голосов
/ 02 сентября 2011

Также для имени инструктора:

public void setInstructorName(String iName)
    {
    iName = instructorName;
    }

Вы, вероятно, имеете в виду:

public void setInstructorName(String iName)
    {
    instructorName = iName ; // I swapped the variables 
    }

А в вашем main методе вы должны вызвать:

 System.out.printf( "gradebook2 course name is: %s\n, instructor name is: ", gradeBook2.getCourseName(), gradeBook2.getInstructorName() // Change is from getInstructorname() to getInstructorName()

Использование таких сред IDE, как Eclipse, Netbeans или IntellijIDEA, поможет вам обнаружить эти ошибки

3 голосов
/ 02 сентября 2011

Вы написали gradebook1 в своем коде вместо gradeBook1.

Переменная gradebook1 не существует, и именно это говорит вам компилятор: cannot find symbol symbol : variable gradebook1.

0 голосов
/ 02 сентября 2011

у вас есть случаи несовпадения как для имени метода getInstructorname () (должно быть getInstructorName ()), так и gradebook1 (gradeBook1).

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