拳頭System.out.println()
的輸出與第二個不相同System.out.println()
可能是什麼原因?爲什麼輸出不一樣?
public class swapex{
public static int var1, var2;
public void badSwap(int var1, int var2){
int temp = var1;
this.var1 = var2;
this.var2 = temp;
System.out.println("var1 " + var1 + " var2 "+ var2);
}
public static void main(String args[])
{
swapex sw= new swapex();
sw.badSwap(10,20);
System.out.println("var1 " + var1 + " var2 "+ var2);
}
}
這甚至編譯?什麼是'this.var1'? 'var1'是一個** static **類變量,並且是一個本地參數,而不是一個實例成員。無論如何,使用'this.var1'的劇本是本地的,並且什麼都不做,因爲你打印的是'val1',而不是'this.var1'。 – Kobi 2010-04-06 05:31:28
Kobi,this.var1和var1都是指靜態字段。這絕對是不好的風格。 – 2010-04-06 05:35:45
真的嗎? '這個'適用於靜態字段?當我學習Java時,它是'swapex.var1' ... – Kobi 2010-04-06 05:44:08