最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
怎样用this区分成员变量与局部变量的名字冲突
时间:2026-06-22 09:38:52 编辑:袖梨 来源:一聚教程网
必须在局部变量与成员变量同名时使用this来访问成员变量,如构造方法中this.name = name;否则name = name;会赋值给参数自身,导致成员变量未被初始化。
在 java 中,当方法参数或局部变量与成员变量同名时,用 this 可以明确指代当前对象的成员变量,从而避免歧义。
什么时候必须用 this?
当局部变量(包括形参)和成员变量重名时,编译器默认优先使用局部变量。此时若想访问同名的成员变量,就必须加 this. 前缀。
- 构造方法中初始化成员变量时常见(如
this.name = name;) - 普通方法中修改或读取同名成员变量时也需要
- 不加 this 就会赋值给局部变量自己,成员变量实际没被修改
典型例子:构造方法中的赋值
比如一个 Person 类:
private String name;
private int age;
public Person(String name, int age) {
this.name = name; // this.name 指成员变量,name 指参数
this.age = age;
}
}
如果不写 this.,name = name; 就变成了把参数赋给自己,成员变量仍是 null。
其他能用 this 的场景(辅助理解)
- 调用本类的另一个构造方法:
this(…);(必须放在第一行) - 将当前对象作为参数传给其他方法:
otherMethod(this); - 在内部类中区分外部类实例:
OuterClass.this.field
小提醒:不是所有情况都要加 this
如果变量名不冲突,加不加 this 都可以,但有些团队规范会要求统一加上,提高可读性。不过它本质是“解决冲突的工具”,不是语法强制要求——只有存在歧义时,它才真正不可替代。
相关文章
- 《明日方舟终末地》陈千语怎么样-陈千语值得培养吗 07-04
- 《明日方舟终末地》余烬怎样配队-余烬阵容搭配推荐 07-04
- 《明日方舟终末地》骏卫怎么样-骏卫值得培养吗 07-04
- 《明日方舟终末地》莱万汀怎样配队-莱万汀强力配队推荐 07-04
- 《明日方舟终末地》原木怎样获得-原木获得方法 07-04
- 《长生天机降世》太虚境十天智遗迹幻境通关攻略-详细打法解析 07-04