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

别来无恙 提交于 2020-05-09 12:13:12

问题


I have a field and a local variable with same name. How to access the field?

Code:

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

In c++ use :: operator like following:

::s

Is were :: operator in Java?


回答1:


That's not a global variable - it's an instance variable. Just use this:

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

(See JLS section 15.8.3 for the meaning of this.)

For static variables (which are what people normally mean when they talk about global variables), you'd use the class name to qualify the variable name:

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

In most cases I prefer not to have a local variable with the same name as an instance or static variable, but the notable exception to this is with constructors and setters, both of which often make sense to have parameters with the same name as instance variables:

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



回答2:


You can use "this" keyword to do this.

Example:

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

}




回答3:


Using this keyword you can use the global one but inside the same class. Or simply you can declare global variable static and access the same using classname.variable name.




回答4:


Yes you can also use 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) 
   } 

}



来源:https://stackoverflow.com/questions/19174623/how-to-access-field-whenever-its-name-is-same-with-local-variable

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!