我试着环顾四周,但很难找到"这个".但我似乎无法掌握这两者之间的区别
public class x{
int y = 0;
int z = 0;
x(int y, int z){
y = y;
z = z
}
}
Run Code Online (Sandbox Code Playgroud)
和
public class x{
int y = 0;
int z = 0;
x(int y, int z){
this.y = y;
this.z = z;
}
}
Run Code Online (Sandbox Code Playgroud)
Wyz*_*a-- 12
当你写作
y = y;
z = z;
Run Code Online (Sandbox Code Playgroud)
您只是将局部变量分配给自己,而根本不触及实例变量.由于y引用了局部变量,因此必须编写this.y以引用要分配的实例变量.
final如果不想修改变量,你可以通过创建变量来帮助捕获这样的错误.例如:
x(final int y, final int z) {
this.y = y;
this.z = z;
}
Run Code Online (Sandbox Code Playgroud)
如果你带走this.前缀,你将得到编译错误,因为局部变量y并且z无法更改.
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |