[英]Constructor error “call to this must be first statement in constructor”
我正在为学校作业编写一些代码,但不确定为什么会不断出现编译错误:“对此的调用必须是构造函数中的第一条语句。” 我应该创建一个名为Student而不是输入名称的学生。
public void newStudent( ){
this("Student");
//Error occurs here ^
}
public void newStudent(String student)
{
studentAndStatus[studentCount] [0] = student;
for(int i = 0; i < 3; i++)
{
grades[studentCount] [i] = 0;
}
studentCount++;
}
要创建类的实例时,应使用构造函数。 构造函数具有与类相同的名称,并且没有声明的返回类型,例如
public class Student {
public Student() {
this("Student");
}
public Student(String name) {
//Whatever you want to do...
}
}
在您的情况下会发生错误,因为您只能在构造函数中调用this
。 由于类propably不叫newStudent
和方法newStudent()
有返回类型,方法newStudent()
不是构造函数,因此this
不能叫。
我假设newStudent()
是一个重载的方法,因为构造函数不能具有返回类型 。
this(arguments)
仅可用于构造函数调用,但是您正在重载newStudent()
方法,因此,如果要调用newStudent(String student)
,则可以如下所示:
public void newStudent( ){
newStudent("Student");//calls the overloaded method
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.