无法将新的字符串实例变量添加到现有代码中

时间:2013-10-08 01:09:30

标签: java string variables instance

嗨我有问题将字符串讲师名称添加到我为coursename制作的现有课程中你可以帮我修复错误 - 这给了我8个错误

import java.util.Scanner;

公共类GradeBook {

private String courseName, instructorName;

public GradeBook ( String name )
{
    courseName = name; 
}

public GradeBook ( String name )
{
    instructorName = name; 
}

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

public void setInstructorName ( String name )
{
    InstructorName = name;
}

public void getCourseName ( String name )
{
    return courseName;
}

public void getInstructorName ( String name )
{
    return instructorName;
}

public void displayMessage();
{
    System.out.printf( "Welcome to the grade book for\n%s!\n\n",
        getCourseName() );
    System.out.printf( "Your instructor for this course is\n%s!\n\n",
        getCourseName() );
}

}

2 个答案:

答案 0 :(得分:4)

From the Java Language Specification

  

使用声明两个构造函数是编译时错误   类中的覆盖等效签名(第8.4.2节)。

  

如果两个方法[或构造函数]具有相同的名称,则它们具有相同的签名   参数类型。

在您的情况下,您有两个构造函数,它们采用String类型的一个参数。换句话说,您有两个具有相同签名的构造函数,编译器将不允许这样做。

使用一个带有两个String参数的构造函数或使用setter。

答案 1 :(得分:0)

public GradeBook ( String name )
{
    courseName = name; 
}

public GradeBook ( String name )
{
    instructorName = name; 
}

虽然您在构造函数中为2个不同的实例变量赋值,但对于JVM,它具有相同的签名。您不能拥有2个具有相同签名的构造函数。 您必须创建一个构造函数,该构造函数请求2个参数或为两个实例变量分配相同的值

    public GradeBook ( String cName, String iName )
    {
        courseName = cName; 
        instructorName = iName; 
    }