4 回答

TA貢獻1條經驗 獲得超2個贊
如果你不加int,c函數的作用就是把a的值變為10。如果加了int,意思是在c函數里面重新定義了一個局部變量a,賦值10。
這個局部變量a,函數e是看不到的,函數e只能看到Di類的屬性a的值(第14行的a)。關于局部變量和全局變量,你只需要記住強龍不壓地頭蛇。在地頭蛇的區域外,強龍厲害,到了地頭蛇的地盤,地頭蛇厲害。

TA貢獻4條經驗 獲得超2個贊
首先,你得明白:
1、變量是有作用域的
2、加int相當于聲明了一個新的變量,這個新變量是在方法c中聲明的,
那么它的作用域就是方法c, 也就是說其它地方是訪問不到這個新的a變量的;
3、方法e中只能訪問到類中定義的那個a變量(int a = 9);
不加int時:(不加int的話就是對原有a變量的再次賦值) ?程序先執行了方法c,
此時它把類中定義的a變量的值從9改變10; ?然后執行方法e, 此時a變量的值已經是10了,結果為輸出10;
加了int時:程序先執行了方法c,此時c方法中并不會去改變類中定義的a變量,而是重新定義了一個新的a變量,
這個a變量的作用域為方法c,它跟類中定義的a變量沒有任何關系(類中定義的a變量的值依然是9),然后執行方法e,?
因為方法e只能訪問到類中的a變量,所以輸出結果為9;

TA貢獻80條經驗 獲得超126個贊
如果加上int 就代表int a在=10c函數中覆蓋了外面的a,而a=10只能在c函數中生效,在c函數外a還是等于9
如果去掉int 代表把外面的a的值更改為10,在當前類中生效所以打印為10,望采納

TA貢獻118條經驗 獲得超37個贊

TA貢獻3593條經驗 獲得超1個贊
添加回答
舉報