2015-02-06 82 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 
    } 

}