最新下载
热门教程
- 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 都可以,但有些团队规范会要求统一加上,提高可读性。不过它本质是“解决冲突的工具”,不是语法强制要求——只有存在歧义时,它才真正不可替代。
相关文章
- TPLink TLWDR7400 无线路由器当作无线交换机使用 08-30
- TPLink TLWDR7400 无线路由器网速限制方法 08-30
- web高危漏洞有哪些-权限检查和参数设置 08-30
- 浅草雷门和纸明信片提示词怎么写-画面元素和风格参数 08-30
- xxe 漏洞是的怎么解决-原因和修复方法 08-30
- win7如何安装net4.0 官方下载验证与故障处理 08-30