[英]Local variable and instance variable has the same name
我不明白在这种情况下发生的过程:
class SomeClass {
int val = 50;
String str = "default";
public SomeClass(int val) {
val = val;
}
}
这个语句 val = val 究竟发生了什么?
如图所示,代码是错误的。 这里的意图是将局部变量val
的值分配给实例变量val
。 但是,没有限定符,此代码只是将局部变量重新分配给自身。 如果将final
添加到构造函数参数中,您将看到它。 你想要的是this.val = val
。 通常的做法是将两者命名为相同的名称以确保易读性,但使用this
限定实例变量。 您还需要一本基本的 Java 书籍。
这个语句 val = val 究竟发生了什么?
这会将局部变量val
的值分配给自身。 要将本地val
分配给实例val
,请使用this
关键字:
this.val = val;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.