亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

小白請教變量定義的小問題。。。

小白請教變量定義的小問題。。。

qq_代號獵人_0 2016-11-29 19:43:50
如圖為啥c()函數里面加了int運行的結果變成了9?去掉int之后結果是10
查看完整描述

4 回答

已采納
?
軍師劉

TA貢獻1條經驗 獲得超2個贊

如果你不加int,c函數的作用就是把a的值變為10。如果加了int,意思是在c函數里面重新定義了一個局部變量a,賦值10。

這個局部變量a,函數e是看不到的,函數e只能看到Di類的屬性a的值(第14行的a)。關于局部變量和全局變量,你只需要記住強龍不壓地頭蛇。在地頭蛇的區域外,強龍厲害,到了地頭蛇的地盤,地頭蛇厲害。

查看完整回答
2 反對 回復 2016-11-29
?
羅宇城_

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;

查看完整回答
1 反對 回復 2016-11-29
?
道臨

TA貢獻80條經驗 獲得超126個贊

如果加上int 就代表int a在=10c函數中覆蓋了外面的a,而a=10只能在c函數中生效,在c函數外a還是等于9

如果去掉int 代表把外面的a的值更改為10,在當前類中生效所以打印為10,望采納

查看完整回答
1 反對 回復 2016-11-29
?
忘性最大的人

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

加了int相當于在該函數內創建了一個新的局部變量,不加默認該函數引用的是你的成員變量a,就是外面那個,你在main方法里先后調用了定義的兩個函數,如果前面沒有創建局部變量,則連續調用那倆函數就會改變a的值,定義局部變量就不會改變a的值,下面的輸出函數永遠輸出的是a成員變量單位值。
查看完整回答
1 反對 回復 2016-11-29
  • 4 回答
  • 0 關注
  • 1759 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號