Person.setPhoneNumber正在说
主类方法在PersonTest类中不是静态的,请将main方法定义为:
public static void main(String[] args)
但是我不能在Person类中将字符串PersonName定义为static。那我该怎么办?
人类:
public class Person {
private String name;
private int age;
private String phoneNumber;
public Person(String n, int a){
name = n;
age = a;
phoneNumber = null;
}
public String getName(){
return name;
}
public void setname(String n){
this.name = n;
}
public int getAge(){
return age;
}
public void setAge(int a){
age = a;
}
public String getPhoneNumber(){
return phoneNumber;
}
public void setPhoneNumber(String pn){
this.phoneNumber = pn;
}
public String toString() {
return "Person {name=" + name +", age= " + age +", phone number =" + phoneNumber+ "}";
}
}
人员测试:
public class PersonTest {
public void main(String[] args){
Person person1 = new Person("Joel.Z", 20);
Person.setPhoneNumber("8324193601");
Person person2 = new Person("Fred Werd", 84);
Person.setPhoneNumber("585275333");
System.out.println(person1);
System.out.println(person2);
}
}
答案 0 :(得分:3)
主要方法应为 static
:
public static void main(String[] args)
此外,您应该在实例上调用方法,而不是在类上:
public class PersonTest {
public static void main(String[] args){
Person person1 = new Person("Joel.Z", 20);
person1.setPhoneNumber("8324193601");
Person person2 = new Person("Fred Werd", 84);
person2.setPhoneNumber("585275333");
System.out.println(person1);
System.out.println(person2);
}
}
答案 1 :(得分:2)
正如@ΔλЛ所说的那样,你的主要方法必须是静态,同时请记住你必须使用创建对象的实例,这意味着:
您正在创建person1
对象:
Person person1 = new Person("Joel.Z", 20);
因此,您必须使用该对象来访问该属性:
person1.setPhoneNumber("8324193601");
而不是 Person.setPhoneNumber(“8324193601”); 与第二个对象的方式相同: person2.setPhoneNumber(“585275333”); 而不是 Person.setPhoneNumber( “585275333”);