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

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

解答大家大部分疑惑

解答大家大部分疑惑

青島有片海 2017-06-24 15:26:30
我也是小白,面對大家大部分問題,這是我的見解:(有點啰嗦)首先要明白,重寫的equals方法中有多個return,只要執(zhí)行一個,方法中剩下的語句就不會執(zhí)行1、contains()方法的實質(zhì):假設(shè)有一個集合L:{A,B,C},其中A,B,C三個對象都是Course類型的,每個對象都有兩個屬性:id和name?,F(xiàn)在集合L調(diào)用contains方法,來判斷某個對象e是否在這個集合內(nèi):L.contains(e);它的執(zhí)行過程是,系統(tǒng)自動讓集合中的每一個對象調(diào)用一次equals方法,即A.equals(e),B.equals(e),C.equals(e),只要這三個equals方法有一個返回TRUE,則contains方法就返回TRUE,證明對象e 存在集合中。所以重寫equals方法,就是重寫contains方法2、第一個if(this==obj)意為,是不是對象調(diào)用equals方法來和自己比較,自己和自己比較當(dāng)然相同啦,結(jié)果返回TRUE,然后執(zhí)行權(quán)回到主方法中3、第二個if(obj==null)意為:被比較的對象obj是不是空的,由于只有非空對象才能調(diào)用equals方法,所以若obj是空對象,則結(jié)果肯定是FALSE4、第三個if(!(obj instanceof Course))和下面強(qiáng)制類型轉(zhuǎn)換,意為,判斷被比較對象obj的實例是不是Course類型的。這里的被比較對象使我們在主方法中創(chuàng)建的一個Course對象(Course obj=new Course();),我們只給它賦予了一個屬性name,注意此對象的引用叫obj,他是Course類型的,這個對象的實例叫new Course();他也是Course類型的。然后這個obj被當(dāng)做形參傳給contains方法,這里向上轉(zhuǎn)型object類,也就是說隱形的執(zhí)行了一句:(Object)obj,這里改變類型的只是對象的引用obj(其類型從Course變成Object),實例依然是Course類型的,所以用instanceof關(guān)鍵字(他判斷的是實例的類型),判斷其類型應(yīng)為Course類的。然后我們要用到這個對象的屬性,由于此時對象的引用是object所以,還得再把它變回來。這里給大家舉個例子:有一個人叫小明,他的媽媽叫小紅,有一件事只有叫小明的人才能干。這個人就相當(dāng)于一個對象,他的名字小明就相當(dāng)于對象的引用,她的媽媽是小紅相當(dāng)于對象的實例,即:無論這個人叫小明也好,該名稱小剛也罷,他都是小紅的兒子,這點是不變的(對應(yīng)程序中的向上轉(zhuǎn)型成object,實例依然為Course類型),然而我們要讓一個人做什么事,肯定會說:“那個誰誰誰,你去干什么什么……”,我們用的是這個人的名字,也就是這個對象的引用,由于文中提到有一件事只有叫小明的人才能做,所以即使人還是這個人,但他的名字已經(jīng)叫小剛了,不叫小明了,所以還得把他的名字換回來(對應(yīng)程序的強(qiáng)制類型轉(zhuǎn)換)5、if(this.name.equals(course.name))為什么用equals,而不用“==”。首先注意,這里調(diào)用equals方法的主體是this.name 他是個string類型的變量,而我們重寫的是Course類型的equals方法,所以這里不是equals方法的遞歸。第二點,一個內(nèi)存中只能存放一種內(nèi)容,然而相同的內(nèi)容可以存在于多個內(nèi)存之中,也就是說同內(nèi)存肯定同內(nèi)容,但同內(nèi)容不一定同內(nèi)存?!?=”比較的是內(nèi)存是否相同,而equals比較的是內(nèi)容,this.name和course.name這兩個分別是不同對象的屬性,而不同對象肯定不同內(nèi)存,所以用“==”的話無論怎樣都會返回FALSE。
查看完整描述

3 回答

已采納
?
慕圣0830664

TA貢獻(xiàn)41條經(jīng)驗 獲得超26個贊

第4點,說的有點亂,重寫equals方法不用創(chuàng)建新對象吧,只是強(qiáng)制把父類的引用轉(zhuǎn)換成子類的引用。創(chuàng)建對象的什么鬼?不明白。

查看完整回答
2 反對 回復(fù) 2017-06-24
  • 青島有片海
    青島有片海
    我的意思是,調(diào)用了contains(e)這個方法,系統(tǒng)會對每個對象執(zhí)行equals(e),而這個e,也就是我們的形參,是一個只有name屬性的course對象(因為我們想查看有name這個屬性的對象是否在集合中); 也就是這樣: Scanner console=new Scanner(System.in) String name=consle.next(); Course e=new Course(); e.name=name; courses.contains(e);//courses是集合
?
望遠(yuǎn)

TA貢獻(xiàn)1017條經(jīng)驗 獲得超1032個贊

很不錯,這些可以整理到手記里發(fā)表,讓更多的人看到,和更多人交流。

查看完整回答
1 反對 回復(fù) 2017-06-24
?
MR帽子先生

TA貢獻(xiàn)245條經(jīng)驗 獲得超106個贊

做的好,希望你分享更多的解答!

查看完整回答
1 反對 回復(fù) 2017-06-24
  • 3 回答
  • 2 關(guān)注
  • 1862 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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