标识符预期错误(Java)

问题描述:

我是编程新手,可以使用帮助手。我创建了一个“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

您需要为每个setter方法中的参数提供一个类型。该类型应该匹配您尝试设置的实例变量的类型。

此外,您应该为您的setter方法提供一个方括号,其中括号为{},您将参数值分配给您的实例变量。

+0

@Downvoter,请解释您为什么downvoted。 – rgettman 2013-03-26 18:05:44

错误被显示,因为下列行:

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

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

如果类是一个普通的类,它既不接口和抽象类,所以方法必须有身体,另一点是,你需要提及的:他们应该被定义如下变量类型lastName,firstName和生日。

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