2013-03-26 95 views
0

我是編程新手,可以使用幫助手。我創建了一個「Person」類和一個TestPerson文件來測試它(是的,這是一個任務)。標識符預期錯誤(Java)

我在第34-36行(在setters中)收到三個錯誤「標識符預期」。顯然,這是一個菜鳥錯誤,但我似乎無法弄清楚。任何幫助,將不勝感激。提前致謝。

/****************************************************************** 
*  program name:  Person.java 
*  author:   Nichol Albertson 
*  remarks:   describes a Person object 
     Date:    3/26/13 
********************************************************************/ 
import java.text.*; 

class Person { 
    /********************************************** 
    * Local Variables 
    ******************************************/ 
    private String lastName; 
    private String firstName; 
    private String birthday; 

    /********************************** 
     * constructors - just a method 
     ***********************************/ 

    public Person(String lastName, String firstName) { 
     setLastName(); 
     setFirstName(); 
     setBirthday(); 
    } 

    public Person(String lastName, String firstName, String birthday) { 
     initialize(lastName, firstName, birthday); 
    } 

    /********************************** 
    * set methods (setters) 
    ***********************************/ 
    public void setLastName(lastName); 
    public void setFirstName(firstName); 
    public void setBirthday(birthday); 

    /********************************** 
    * get methods (getters) 
    ***********************************/ 
    public String getLastName() { 
     return lastName; 
    } 

    public String getFirstName() { 
     return firstName; 
    } 

    public String getBirthday() { 
     return birthday; 
    } 

    /******************************* 
    * other methods 
    ********************************/ 
    public String getFirstLast() { 
     System.out.println(firstName + " " + lastName); 
    } 

    public String getLastFirst() { 
     System.out.println(lastName + ", " + firstName); 
    } 
} 
+0

@Perception:你有沒有在類定義中加入'abstract'? – 2013-03-26 17:34:06

+0

查看問題的修訂歷史記錄,是的,@Perception爲班級添加了「抽象」。 – rgettman 2013-03-26 17:35:14

+0

是的,我發指令編輯。現在修復。 – Perception 2013-03-26 17:37:02

回答

4

您需要爲每個setter方法中的參數提供一個類型。該類型應該匹配您嘗試設置的實例變量的類型。

此外,您應該爲您的setter方法提供一個方括號,其中括號爲{},您將參數值分配給您的實例變量。

+0

@Downvoter,請解釋您爲什麼downvoted。 – rgettman 2013-03-26 18:05:44

1

錯誤被顯示,因爲下列行:

public void setLastName(lastName); 
public void setFirstName(firstName); 
public void setBirthday(birthday); 

Person既不abstract class也不是interface。它的確是一個concrete class。你不能只在concrete類中聲明方法。你也必須提供一些方法。這可能會以這種方式改變:

public void setLastName(String lastName){ this.lastName = lastName;} 
public void setFirstName(String firstName){ this.firstName = firstName;} 
public void setBirthday(String birthday){ this.birthday = birthday;} 

此外,下面的方法定義完全錯誤:

的上述方法
public String getFirstLast() { 
    System.out.println(firstName + " " + lastName); 
} 

public String getLastFirst() { 
    System.out.println(lastName + ", " + firstName); 
} 

兩個有返回類型String,但你要返回什麼。這在你的代碼中也是一個錯誤。

public String getFirstLast() { 
    return firstName + " " + lastName; 
} 

public String getLastFirst() { 
    return lastName + ", " + firstName; 
} 
0
public void setLastName(lastName); 
public void setFirstName(firstName); 
public void setBirthday(birthday); 

如果類是一個普通的類,它既不接口和抽象類,所以方法必須有身體,另一點是,你需要提及的:他們應該被定義如下變量類型lastName,firstName和生日。

public void setLastName(String lastName) 
    { 
     //method's body 
    }