小编典典

每当名称与局部变量相同时如何访问字段?

java

我有一个字段和一个具有相同名称的局部变量。如何进入该领域?

码:

String  s = "Global";
private void mx()
{
   String  s = "Local";
   lblB.setText(s); // i want global
}

在c ++中使用::运算符,如下所示:

::s

是Java中的::运算符吗?


阅读 197

收藏
2020-11-30

共1个答案

小编典典

那不是全局变量,而是实例变量。只需使用this

String  s = "Local";
lblB.setText(this.s);

(有关的含义,请参见JLS第15.8.3节this。)

对于 静态 变量(人们在谈论全局变量时通常指的是 静态 变量),您可以使用类名来限定变量名:

String  s = "Local";
lblB.setText(ClassDeclaringTheVariable.s);

在大多数情况下,我宁愿不要使用与实例或静态变量同名的局部变量,但值得注意的例外是构造函数和设置器,这两者通常都有意义,它们的参数与实例变量同名:

public class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}
2020-11-30