成员变量和本地方法变量可以具有相同的名称吗?

Gre*_*reg 12 java variables syntax

我怎么做到这一点?

class Test {
    private int var1;

    public Test(int var1) {
        var1 = var1; //set the member variable to what was passed in
    }
}
Run Code Online (Sandbox Code Playgroud)

我相信有一个非常明显的答案.它现在正在逃避我.

Jon*_*ust 21

是的,他们可以共享相同的名称.但是,要引用实例变量,您需要使用this前缀:

public Test(int var1) {
    this.var1 = var1;
}
Run Code Online (Sandbox Code Playgroud)

  • 那么“ this”通常是可选的吗?但是在这种情况下,由于名称冲突,我需要它吗?我理解正确吗? (2认同)
  • @Greg-完全是。 (2认同)
  • 在这种情况下,您不需要它*因为*名称冲突,您需要它来告诉JVM从不同(特定)范围获取引用."超." 工作方式类似,但从您正在扩展的类中获取变量/方法(甚至是"更大"的范围).有些语言甚至会提供"全球化".类型修饰符,但不是Java. (2认同)

fas*_*ava 5

是的,你可以,但局部变量将隐藏类变量.