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

為了賬號安全,請及時綁定郵箱和手機立即綁定

if (this == obj) return true;

老師說判斷引用的值是否相等就是比較的地址是否相同(this==obj),可是地址不是應(yīng)該不一樣么?怎么說是指向同樣地址,相當(dāng)于指向同一個對象。

正在回答

2 回答

第一個問題:第一個地址是調(diào)用這個方法的對象的地址;另一個地址是這個方法中參數(shù)傳遞過來對象的地址。

第二個問題:我覺得是你的equals理解的不夠吧。拿手機來舉例的話。

一般我們說手機是否一樣,是比較手機的型號、品牌、顏色、尺寸等等,如果一樣的話,那么這就是2個一樣的手機,對吧。比如你有個iphone5,我也有個iphone5,那咋倆的手機一樣。

但是在不重寫equals方法的時候,原有方法認為2個手機一樣的條件是,只能是同一部手機。這個條件比咱們需要的條件還苛刻,所以很多時候不適用。

我們重寫equals方法,第一句就先判斷究竟是不是同一部手機,如果是肯定相等啊。如果不是,然后看他倆都是不是手機,如果一個是手機,一個是磚頭肯定也不用比較了,肯定不相等。然后再看另一個存不存在(就是null),要是你都沒有手機,咋倆也不用比了。。。如果咱倆都是手機,ok,開始比較手機的參數(shù)了。


不知道你明白了沒有。

4 回復(fù) 有任何疑惑可以回復(fù)我~
#1

qq__878 提問者

非常感謝!
2015-08-03 回復(fù) 有任何疑惑可以回復(fù)我~
#2

qq_兩_0

你好,請問obj是什么意思?
2017-10-31 回復(fù) 有任何疑惑可以回復(fù)我~
#3

weixin_慕斯3333622

妙哉!?。?/div>
2023-09-21 回復(fù) 有任何疑惑可以回復(fù)我~

還是你啊,看來你很勤奮好學(xué)啊,加油共勉。

程序里有的變量的地址值就是會相同的啊。

比如Student s1=new Student();????//s1指向了一個新創(chuàng)建的對象

Student s2=s1;????????//這里的s2指向的就是s1啊,所以他倆的地址值肯定相同啊。

當(dāng)然,基本不會讓2個變量總指向同一個地址值,否則他倆就沒區(qū)別了。所以這也就是為什么很多時候需要重寫equals的方法,就是不判斷地址值,而是判斷對象的所有屬性值。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

qq__878 提問者

老師判斷的是哪兩個的地址呢?我有點搞不清
2015-07-30 回復(fù) 有任何疑惑可以回復(fù)我~
#2

qq__878 提問者

你說很多時候需要重寫equals的方法,就是不判斷地址值,而是判斷對象的所有屬性值。 那比較兩個對象的值是否一樣,就要對equals重寫,重寫的equals怎么還是通過判斷他的地址來判斷是否一樣呢?
2015-07-30 回復(fù) 有任何疑惑可以回復(fù)我~
#3

ternenceZz 回復(fù) qq__878 提問者

不知道我理解的對不對,這里我們重寫的equals方法,有四個if判斷,第一個判斷兩個是否是同一個地址如果是就返回true,因為地址一樣了他們就是同一個東西,第二個判斷傳進來的參數(shù)是否是空值,如果不是繼續(xù)第三個判斷,兩個對象的類是否是一樣的(就是老師說的類對象),然后因為是傳進來的參數(shù)是object類,所以我們要強制把它轉(zhuǎn)換成dog類,再進行最后的判斷,他們所有的屬性值是否是一樣。
2015-08-23 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

if (this == obj) return true;

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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