第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

同樣是類類型數(shù)組,為什么運行的結(jié)果不同?

同樣是類類型數(shù)組,為什么運行的結(jié)果不同?

這老頭壞的很_2019 2016-05-03 18:40:08
先上兩個例子例子1:public?class?IntegerArray{ ????public?static?void?main(String[]?args){ ????????Integer[]?scores1?=?new?Integer[]{1,2,3,4,5}; ????????Integer[]?scores2?=?new?Integer[scores1.length]; ????????for(int?i?=?0;?i?<?scores1.length;?i++){ ????????????scores2[i]?=?scores1[i]; ????????} ????????for(Integer?score2:?scores2){ ????????System.out.print(score2); ????????} ????????System.out.println(); ????????scores2[0]?=?7; ????????for(Integer?score1?:?scores1){ ????????????System.out.print(score1); ????????} ????????System.out.println(); ????????for(Integer?score2:?scores2){ ????????????System.out.print(score2); ????????????} ????} } -------------------------------------------------------- 運行結(jié)果: 12345 12345 72345 -------------------------------------------------------- 例子2: public?class?ClassArray?{ ????public?static?void?main(String[]?args){ ????????Clothes[]?c1?=?{new?Clothes("red",?'L'),?new?Clothes("blue",?'M')}; ????????Clothes[]?c2?=?new?Clothes[c1.length]; ????????for(int?i?=?0;?i?<?c1.length;?i++){ ????????????c2[i]?=?c1[i]; ????????} ????????for(Clothes?c?:?c2){ ????????????System.out.print(c.color?+?"--"?+?c.size?+"?"); ????????} ????????c2[0].color?=?"black"; ????????System.out.println(); ????????for(Clothes?c?:?c1){ ????????????System.out.print(c.color?+?"--"?+?c.size?+?"?"); ????????} ????????System.out.println(); ????????for(Clothes?c?:?c2){ ????????????System.out.print(c.color?+?"--"?+?c.size?+"?"); ????????} ????} } ---------------------------------------------------------------------- 運行結(jié)果: red--L?blue--M? black--L?blue--M? black--L?blue--M? ---------------------------------------------------------------------- 疑問:同樣是類類型數(shù)組,為什么運行的結(jié)果不同,一個是2個數(shù)組變量分別指向2個不同的數(shù)組對象, 另一個則是2個數(shù)組變量指向同一個數(shù)組對象;難道就是因為Integer這個類比較特殊?希望知道的人幫忙解答一下。。。
查看完整描述

4 回答

?
Corbie亞東

TA貢獻53條經(jīng)驗 獲得超25個贊

Integer時候他們傳的是個值? 而到自定義時候他們傳的是一個個對象???? 當你去修改 自定義對象時會去堆中修改指定地址的對象值???? c2[i] = c1[i];?? 給的是指定的對象地址????? 貌似是這樣的??? 你再去查查資料

查看完整回答
2 反對 回復 2016-05-03
?
慕工程5894045

TA貢獻2條經(jīng)驗 獲得超0個贊

補充我回答的,Integer之所以不能改變是因為源碼上的值是final修飾的,追溯進去看下,所以造成了Integer的值不能更改后隨之變化。

查看完整回答
反對 回復 2016-05-04
?
慕工程5894045

TA貢獻2條經(jīng)驗 獲得超0個贊

樓上說的很對自定義對象傳的是對象的引用的副本,但是指向的是同一個對象,所以改變指向的內(nèi)容的話,就會改變你指定對象的值,你最初的對象的引用是不會變化的,但是這里Integer為什么當成基本數(shù)據(jù)類型處理,而不是也當成對象的引用,這點我還不是很明白。

查看完整回答
反對 回復 2016-05-04
?
這老頭壞的很_2019

TA貢獻1條經(jīng)驗 獲得超0個贊

例子2里的類是自己定義的,代碼如下:

class Clothes{
?? ?String color;
?? ?char size;
?? ?Clothes(String color, char size){
?? ??? ?this.color = color;
?? ??? ?this.size = size;
?? ?}
}

查看完整回答
反對 回復 2016-05-03
  • 4 回答
  • 0 關注
  • 1435 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號