在我的Java類中,我們剛剛瞭解了範圍。據我所知,我的意思是曾經簡要提及過一次,從此再也沒有提過。發佈了一些問題,並且我無法理解兩段代碼之間的區別。第一招:Java中的私有,靜態和變量範圍
public class Shadow3 {
private static int i = 99;
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
System.out.println(i);
}
}
,第二個:
public class Shadow4 {
private int i;
public void doSomething(int n) {
for (int i = 0; i < n; i++) {
System.out.println(i);
}
}
public static void main(String[] args) {
new Shadow4().doSomething(9);
}
}
據我所知,與第一個錯誤是不是該變量聲明兩次,但我不明白爲什麼範圍在Shadow類中聲明的變量沒有達到導致重複錯誤的主要方法。我也明白爲什麼在第一段代碼中,變量i在for循環中被使用時不能被聲明爲私有靜態變量,因爲for循環中的i值是臨時的,但我不明白如何第二段代碼中的變量i是有效的,因爲它仍然是私有的。
我不認爲無論是塊的代碼有錯誤。你爲什麼認爲他們這樣做? For循環確實有臨時變量,僅限於它們。你有跑這些代碼嗎?你注意到了什麼? –
嗯,你完全正確。我刪除並重新編寫了我的課程,然後再次嘗試,並且工作正常!我一定錯過了我的代碼中的其他錯誤。謝謝:) –
這是相同的問題http://stackoverflow.com/questions/10459487/difference-between-public-static-and-private-static-variables – Neeraj