我有一個靜態變量和一個靜態函數中具有相同名稱的局部變量。 在那個函數中我怎樣才能訪問靜態變量。如何在具有相同名稱的變量的靜態函數中訪問全局靜態變量
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