2015-02-06 101 views
0

我有一个静态变量和一个静态函数中具有相同名称的局部变量。 在那个函数中我怎样才能访问静态变量。如何在具有相同名称的变量的静态函数中访问全局静态变量

static String s = "class level"; 
static private void mx(String s) 
{ 
System.out.println(s); // i want class level 
} 
+0

@Erik:这是行不通的。它是静态的,没有'this'。 – 2015-02-06 14:12:27

+0

但是要小心误解:在Java中没有这样的全局变量。 – Stultuske 2015-02-06 14:13:32

回答

3

设在左类的名称:

ClassName.s=...; 
3

只要使用它的全名:ClassName.s

2

在函数,只用“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 
    } 

}