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

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

關于java物件參照的一個問題

關于java物件參照的一個問題

掌門飛哥 2016-12-05 23:23:43
class?Test{ int?x=3; void?show?(){ System.out.println("x="+x); } } public?class?java1{ public?static?void?main(String?[]?argv){ Test?a,b,c; a=new?Test(); b=new?Test(); System.out.println("a==b?"+(a==b));//為什么這里顯示的結果是false呢?程序運行到這里都是一樣數值?。? c=b;//這里是吧b的值給c對吧?還是不是簡單地賦值而是別的呢? c.x=10;??//不懂這里,按照道理應該是c.show來使用方法,為啥要c.x呢???我原來慕課中也問過這個問題,別人給的答案 //是這里可以理解為調用,,因為c是Test類的對象,故c既可以使用來調用Test類中的方法,也可以通過查看,修改Test類成員 變量的值,我還是沒有聽懂,不知為啥c就是Test類的對象呢?請大神給我解答解答,謝謝了!這里不懂,謝謝了,希望詳細給我講講! System.out.println("c==b?"+(c==b)); System.out.print("a."); a.show(); System.out.print("b."); b.show(); System.out.print("c."); c.show(); } }
查看完整描述

3 回答

?
Finit

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

?c=b;是引用賦值,打印System.out.println(c==b);結果為true,即b、c指向同一內存地址;既然是同一引用,所以b.show、c.show一樣;

然而:

?a=new?Test();

????????b=new?Test();

????????System.out.println("a==b?"+(a==b));

a、b為不同對象,不同存儲地址,即引用指向地址不同,a==b為FALSE。

望采納

查看完整回答
反對 回復 2016-12-06
  • 3 回答
  • 0 關注
  • 1393 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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