簡體   English   中英

構造函數錯誤“對此的調用必須是構造函數中的第一條語句”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM