我是编程新手,可以伸出援助之手。我已经创建了一个“Person”类和一个TestPerson文件来测试它(是的,这是一个赋值。)
我在第34-36行(在setter中)收到三个“预期标识符”错误。显然,这是一个菜鸟错误,但我似乎无法弄明白。任何帮助,将不胜感激。提前谢谢。
/******************************************************************
* 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 :(得分:4)
您需要在每个setter方法中为参数提供一个类型。该类型应与您尝试设置的实例变量的类型相匹配。
此外,您应该为setter方法提供带大括号{
和}
的方法体,您可以在其中为实例变量指定参数值。
答案 1 :(得分: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;
}
答案 2 :(得分:0)
public void setLastName(lastName);
public void setFirstName(firstName);
public void setBirthday(birthday);
如果类是普通类,它既不是接口也不是抽象类,所以方法必须有正文,另一点是你需要提到变量类型lastName,firstName和birthday。
public void setLastName(String lastName)
{
//method's body
}