必须在局部变量与成员变量同名时使用this来访问成员变量,如构造方法中this.name = name;否则name = name;会赋值给参数自身,导致成员变量未被初始化。
在 java 中,当方法参数或局部变量与成员变量同名时,用 this 可以明确指代当前对象的成员变量,从而避免歧义。
当局部变量(包括形参)和成员变量重名时,编译器默认优先使用局部变量。此时若想访问同名的成员变量,就必须加 this. 前缀。
this.name = name;)比如一个 Person 类:
如果不写 this.,name = name; 就变成了把参数赋给自己,成员变量仍是 null。
this(…);(必须放在第一行)otherMethod(this);
OuterClass.this.field
如果变量名不冲突,加不加 this 都可以,但有些团队规范会要求统一加上,提高可读性。不过它本质是“解决冲突的工具”,不是语法强制要求——只有存在歧义时,它才真正不可替代。