错误消息“找不到符号”

时间:2011-09-02 07:49:13

标签: java compiler-errors

我对java和编程很新。我正在使用教科书“Java如何编程”。我正在解决一个练习(3.11页码136)。在这个练习中,我试图获得一个有两个课程的应用程序来打印关于成绩册的信息。它应该为该类的两个对象中的每一个打印出两个字符串,其中包含以下信息:“gradeBook1课程名称为:CS101 Java编程简介,教师是唐老鸭”。对于成绩单2的一些其他信息。我应该使用get和set-methods,并使用构造函数。我现在已经工作了很多而没有设法编译包含main方法的“gradeBookTest类”。我收到以下错误消息:

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 个答案:

答案 0 :(得分:3)

您在代码中写了gradebook1而不是gradeBook1

gradebook1变量不存在,这就是编译器告诉你的:cannot find symbol symbol : variable gradebook1

答案 1 :(得分:3)

同样对于教师姓名:

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()

使用Eclipse,Netbeans或IntellijIDEA等IDE可以帮助您发现这些错误

答案 2 :(得分:0)

你有方法名称getInstructorname()(应该是getInstructorName())和gradebook1(gradeBook1)的错配案例。