我对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() );
}
}
任何人都可以帮助我,我被困在这里?
答案 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)的错配案例。