課程
/后端開發(fā)
/Java
/Java入門第二季 升級版
為什么結(jié)果還是顯示一樣的,兩個age的值都不一樣
2018-07-19
源自:Java入門第二季 升級版 9-9
正在回答
public?class?HelloWorld{ ????public?static?void?main(String[]?args)?{ ????????Dog1?d?=?new?Dog1(); ????????d.age?=?20; ????????Dog1?d1?=?new?Dog1(); ????????d1.age?=?45; ????????if?(d.equals(d1)){ ????????????System.out.println("兩個對象是相同的"); ????????}else?{ ????????????System.out.println("兩個對象是不同的"); ????????} ????} }
結(jié)果:兩個對象是不同的
慕瓜4577637
你把你重寫的equals的代碼也發(fā)出來看看?
public class HelloWorld {
? ??
? ? public static void main(String[] args){
HelloWorld h =new HelloWorld();
HelloWorld h1 =new HelloWorld();
if(h.equals(h1))
{
? ?System.out.println("相同");
}else
? ?System.out.println("不同");
}
/*結(jié)果輸出為:不同*/
左眼呈過去
你比較的并不是age。。。而是整個對象 ?d和d1 都是來自同一個地址Dog1的,要是想比較age你可以這樣寫:
if(d.age.equals(d1.age)) 再輸出看看
慕仔2498183
注意:equals方法不能作用于基本數(shù)據(jù)類型的變量
如果沒有對equals方法進行重寫,則比較的是引用類型的變量所指向的對象的地址;
諸如String、Date等類對equals方法進行了重寫的話,比較的是所指向的對象的內(nèi)容。
慕沐8454760 提問者
首先 , equals方法不是用來比較兩個值是否相等,而是用來比較兩個對象的引用是否相等,即是否指向同一個對象,或者引用類型的變量所指向的對象的地址;你的代碼里面,兩個age都是通過同一個對象Dog1來賦值的,所以輸出的結(jié)果為 “兩個對象為相同的”。
舉報
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙
4 回答結(jié)果顯示不一樣了,哪里的問題?
4 回答equals如果比較的兩個內(nèi)存地址一樣,但是值不一樣。這個接錯是正確的嗎?
4 回答示例中的輸出結(jié)果為什么是那樣的
2 回答為什么我在輸出時System.out.println(className);結(jié)果是一樣的
2 回答為何用父類get方法和子類get方法獲取的age值是不一樣的?!
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-08-19
結(jié)果:兩個對象是不同的
2018-07-26
你把你重寫的equals的代碼也發(fā)出來看看?
2018-07-19
public class HelloWorld {
? ??
? ? public static void main(String[] args){
HelloWorld h =new HelloWorld();
HelloWorld h1 =new HelloWorld();
if(h.equals(h1))
{
? ?System.out.println("相同");
}else
{
? ?System.out.println("不同");
}
}
}
/*結(jié)果輸出為:不同*/
2018-07-19
你比較的并不是age。。。而是整個對象 ?d和d1 都是來自同一個地址Dog1的,要是想比較age你可以這樣寫:
if(d.age.equals(d1.age)) 再輸出看看
2018-07-19
注意:equals方法不能作用于基本數(shù)據(jù)類型的變量
如果沒有對equals方法進行重寫,則比較的是引用類型的變量所指向的對象的地址;
諸如String、Date等類對equals方法進行了重寫的話,比較的是所指向的對象的內(nèi)容。
2018-07-19
首先 , equals方法不是用來比較兩個值是否相等,而是用來比較兩個對象的引用是否相等,即是否指向同一個對象,或者引用類型的變量所指向的對象的地址;你的代碼里面,兩個age都是通過同一個對象Dog1來賦值的,所以輸出的結(jié)果為 “兩個對象為相同的”。