繁体   English   中英

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

[英]How to access field whenever its name is same with local variable?

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

代码:

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

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

::s

是 :: 运算符在 Java 中吗?

这不是一个全局变量——它是一个实例变量。 只需使用this

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

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

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

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;
    }
}

您可以使用“this”关键字来执行此操作。

示例:

public class Test {
private String s = "GLOBAL";

public Test() {
    String s = "LOCAL";
    //System.out.println(this.s);
    //=> OR:
    System.out.println(s);
}


public static void main(String[] args) throws IOException {
    new Test();
}

}

使用此关键字,您可以使用全局关键字但在同一个类中。 或者你可以简单地声明全局变量 static 并使用 classname.variable name 访问相同的变量。

是的,您也可以使用 class _ name.Globalvariable_name

Class simple 
{

 static int i;
 public static void main(string args[]) 
  {
      int i=10;
       System.out.println("Local Variable I =" +i) ;
     system.out.println("Global variable I =" +Simple.i) 
   } 

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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