我有一个静态变量和一个静态函数中具有相同名称的局部变量。 在那个函数中我怎样才能访问静态变量。如何在具有相同名称的变量的静态函数中访问全局静态变量
static String s = "class level";
static private void mx(String s)
{
System.out.println(s); // i want class level
}
我有一个静态变量和一个静态函数中具有相同名称的局部变量。 在那个函数中我怎样才能访问静态变量。如何在具有相同名称的变量的静态函数中访问全局静态变量
static String s = "class level";
static private void mx(String s)
{
System.out.println(s); // i want class level
}
设在左类的名称:
ClassName.s=...;
只要使用它的全名:ClassName.s
在函数,只用“S”将是当地的静态变量。若要访问静态成员(函数或类),你可以把它用
Classname.membername
在你的情况,如果你想打印局部变量,你可以使用
System.out.println(s);
因为你已经正确地做。假设你的整个事情被包装在一个名为“Test”的类中。所以,
Class Test{
static String s = "Global";
static private void mx(String s)
{
System.out.println(s); // i want global
}
}
因此,为了打印各字符串(本地S,和 “全球” S),
Class Test{
static String s = "Global";
static private void mx(String s)
{
System.out.println(s); //prints local s
System.out.println(Test.s); //prints "global" s
}
}
@Erik:这是行不通的。它是静态的,没有'this'。 – 2015-02-06 14:12:27
但是要小心误解:在Java中没有这样的全局变量。 – Stultuske 2015-02-06 14:13:32