0

嗨,我在将字符串教师姓名添加到我为 coursename 制作的现有课程中时遇到问题,你能帮我修复错误吗 - 这给了我 8 个错误

import java.util.Scanner;

公共课成绩簿{

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

}

4

2 回答 2

4

来自 Java 语言规范

在一个类中声明两个具有重写等效签名(第 8.4.2 节)的构造函数是编译时错误。

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

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

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

于 2013-10-08T01:12:45.530 回答
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; 
    }
于 2013-10-08T06:26:42.553 回答