大家都知道静态方法中是不可以直接访问非静态成员,因为它们的生命周期可能不相同。
在看《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);
}
}
运行结果: