首先建一个Person类
package cn.day1007;
public class Person {
String name;
//参数(who)是对方的名字
//成员变量是自己的名字
public void sayHello(String who) {
System.out.println(who+",你好!我是"+name);
}
}
package cn.day1007;
public class Demo01Person {
public static void main(String[] args) {
Person person = new Person();
//设置我自己的名字
person.name = "王健林";
person.sayHello("王思聪");
}
}
运行结果:
王思聪,你好!我是王健林
此时,我们把Person类中的参数who改成name,会发生什么呢?
再次运行:
王思聪,你好!我是王思聪
原来,当类的成员变量和方法的局部变量重名的时候,根据“就近原则”,优先使用局部变量。
如果需要访问本类当中的成员变量,需要使用格式:this.成员变量名
package cn.day1007;
public class Person {
String name;
//参数(who)是对方的名字
//成员变量是自己的名字
public void sayHello(String name) {
System.out.println(name+",你好!我是"+this.name);
}
}
作用:this关键字可以解决重名情况下,分不开的问题
通过谁调用的方法,谁就是this