我有一个同名的字段和一个局部变量。如何访问该字段?
代码:
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);
(有关的含义,请参见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;
}
}
使用这个关键字,您可以使用全局关键字,但在同一个类中。或者你可以简单地声明全局变量 static 并使用 classname.variable 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();
}
}
是的,您也可以使用 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)
}
}