繁体   English   中英

局部变量和实例变量同名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM