静态方法间接访问非静态成员

时间:2022-06-01 19:32:51

大家都知道静态方法中是不可以直接访问非静态成员,因为它们的生命周期可能不相同。

在看《Thinking in java》中讲到的this关键字的用途中看到,可以放到静态方法的参数中去,可以调用该this所指对象中包含的非静态方法。自己想想应该就是间接的访问非静态成员。

下面就是我自己写的代码:

public class Person {
String name;
int age;
String position;
public static void showPerson(Person person) {
person.name = "Shen Ting";
person.age = 29;
System.out.println("名字是:" + person.name + "," + "年龄:" + person.age + ", 住址:" + person.position);
}

public static void main(String[] args) {
Person person = new Person();
person.position = "北京市";
Person.showPerson(person);
}
}

运行结果:

静态方法间接访问非静态成员