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

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

5-2編程練習,不太懂equals的意思。是否里面的equals都有必要

5-2編程練習,不太懂equals的意思。是否里面的equals都有必要

qq_踏雪_5 2018-02-18 17:40:28
我是機動車!car1和car2的引用比較:true===============================張小泉出租車是屬于長生公司的出租車是提高市民生活質(zhì)量的重要條件之一taxi的信息是張小泉擁有一輛藍色出租車===============================孫二娘擁有的紫色顏色的私家車,有7座位家用汽車大多擁有5個座位public class Car { ?private String color;private String userName;public Car() {}public Car(String color, String userName) { this.color=color; this.userName=userName;}public String getColor() { return color;}public void setColor(String color) { this.color = color;}public String getUserName() { return userName;}public void setUserName(String userName) { this.userName = userName;}public void use() { System.out.println("我是機動車!");}public boolean equals(Object obj){if(obj==null) return false;Car temp = (Car)obj;if(this.getColor().equals(temp.getColor())&&this.getUserName().equals(temp.getUserName())) return true;else return false;}public boolean equals(Car obj) { if(obj==null) return false; Car temp = obj; if(this.getColor().equals(temp.getColor())&&this.getUserName().equals(temp.getUserName())) return true; else return false; }}public class Test {? ? public static void main(String[] args){? Car car1 = new Car("紅","小汽車"); Car car2 = new Car("紅","小汽車");? ? ? ?car1.use();? ? ? ?boolean flag = car1.equals(car2);? ? ? ?System.out.println("car1和car2的引用比較:"+flag);? ? ? ?System.out.println("===============================");? ? ? ?Taxi taxi1=new Taxi("藍色","張小泉","長生");? ? ? ?taxi1.ride();? ? ? ?taxi1.use();? ? ? ?System.out.println(taxi1.toString());? ? ? ?System.out.println("===============================");? ? ? ?HomeCar homecar1=new HomeCar("紫色","孫二娘",7);? ? ? ?homecar1.display();? ? ? ?homecar1.display(5); }}我只貼出了與equal有關(guān)的類。以上程序運行是成功的不是很懂為什么要用equals判斷?要判斷是否都是代碼這么寫的,但這么寫的意義是什么?
查看完整描述

1 回答

?
慕慕1581088

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

(沒錯,又是我?。?/p>

基本數(shù)據(jù)類型通常用==判斷是否相等

引用數(shù)據(jù)類型用==比較的是兩個對象的地址是否相同

equals是Object 類的方法,內(nèi)部實現(xiàn)為:

public boolean equals(Object obj){

return (this == obj);

}

用的也是==,因為Object是所有類的父類,所以每個類即使沒定義

也都能用equals方法不過和用==沒有區(qū)別,要想實現(xiàn)特定的比較方法,

需要在本類中重寫equals,如你所做的:

public boolean equals(Object obj){

if(obj==null)

return false;

Car temp = (Car)obj;

if(this.getColor().equals(temp.getColor())&&this.getUserName().equals(temp.getUserName()))

return true;

else

return false;

}

因為有起好的名字,所以我們就用equals了(我們?nèi)∶值乃骄褪沁@么匱乏),

你取其他的名字也是可以的。

要注意一點,昨天說過,

強轉(zhuǎn)前應該判斷一下obj對象是不是Car的類型的

要不可能拋ClassCastException 類型轉(zhuǎn)換異常

if(obj instanceof Car)

????Car temp = (Car)obj;


查看完整回答
1 反對 回復 2018-02-18
  • 1 回答
  • 0 關(guān)注
  • 1112 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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