如果没有this关键字,类中方法,会自动调用最近的,比如说:
1.此处表示私有的成员变量name
public class Student{
private String name;
}
2.在创造对象过程中使用setName用成员方法给成员变量赋值,因为在创造方法时,就像是在写设计说明书,所以方法名必须一看就懂,这样会导致成员方法中的name和成员变量的name重名
public String setName(String name){
name = name;
}
3.出现重名后,就会采取就近原则,此时name离局部变量name更近,就导致了自己赋值了自己,结果外部的全局变量没有被赋值
4.这时使用方法getname输出name,就算离局部变量name近,也只会输出全局变量name,因为方法之间是没有距离这一说的,getname方法看不到setname方法中的name,所以对于它来讲,最近的仍然是全局变量name,但是全局变量name没有被赋值,导致输出会为null
public String getName(){
return name;
}
5.解决方法就是在name = name;前面的全局变量name前面加一个this,取消就近原则
public String setName(String name){
this.name = name;
}
6.this代表方法调用者的地址值,如果调用者是s,s地址是001,当使用this.name时,他的意思就是调用001这个地址下的name
关于方法之间没有就近原则是我自己思考出来的,可能还有改进的地方,大佬们可以教教我