避免主要方法静态定义?

时间:2017-05-30 16:18:59

标签: java

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

2 个答案:

答案 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”);