真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【Java面向?qū)ο蟆繉?duì)象比較實(shí)驗(yàn)-創(chuàng)新互聯(lián)

背景介紹

equals方法作用:

成都創(chuàng)新互聯(lián)專注于尼元陽(yáng)企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城建設(shè)。尼元陽(yáng)網(wǎng)站建設(shè)公司,為尼元陽(yáng)等地區(qū)提供建站服務(wù)。全流程按需求定制開(kāi)發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

equals()被用來(lái)檢測(cè)兩個(gè)對(duì)象是否相等,即兩個(gè)對(duì)象的內(nèi)容是否相等。

  • equals 方法是String類從它的超類Object中繼承的

  • ==用于比較引用和比較基本數(shù)據(jù)類型時(shí)具有不同的功能:

比較基本數(shù)據(jù)類型,如果兩個(gè)值相同,則結(jié)果為true

而在比較引用時(shí),如果引用指向內(nèi)存中的同一對(duì)象,結(jié)果為true

equals()方法在object類中定義:

public boolean equals(Object obj) {  
    return (this == obj);  
}
實(shí)驗(yàn)環(huán)境

ASUS VivoBook + Windows10 + IntelliJ IDEA 2021.3.2 (Community Edition) + JDK17

實(shí)驗(yàn)內(nèi)容

實(shí)現(xiàn)一個(gè)名為Value 的類,其中含有一個(gè)字符類型的成員x 和雙精度類型的成員y。請(qǐng)重寫(override)其equals( )方法,使得用equals( )比較Value 類的兩個(gè)對(duì)象的內(nèi)容時(shí),相等條件是對(duì)象的所有成員分別對(duì)應(yīng)相等。

(1)實(shí)驗(yàn)思路

①定義類Value,設(shè)置其成員變量(包括但不限于)為char型變量x和double型變量y。

②equals方法本是對(duì)引用地址進(jìn)行比較,現(xiàn)需要根據(jù)兩個(gè)類內(nèi)容中的成員變量對(duì)內(nèi)容進(jìn)行比較,對(duì)于Value類對(duì)象而言需要將其與其他Value類對(duì)象進(jìn)行比較。故重寫方法返回值為boolean型,方法名保留為equals,參數(shù)列表為Value類對(duì)象b。借助比較運(yùn)算符“==”和“this”關(guān)鍵字對(duì)兩個(gè)類的成員變量進(jìn)行判定,若滿足則返回true,不滿足則返回false。

③通過(guò)添加有參構(gòu)造器可以對(duì)Value類的成員變量x和y進(jìn)行初始化。

④在類中定義main方法,創(chuàng)建實(shí)例進(jìn)行比較。

(2)實(shí)驗(yàn)源碼

Value類:

public class Value {
    char x;
    double y;
    boolean equals(Value b) {
        return (this.x == b.x) && (this.y == b.y);
    }

    Value(char m,double n){
        this.x=m;
        this.y=n;
    }

    public static void main(String[] args) {
        Value classOne = new Value('x',2.5);
        Value classTwo = new Value('x',2.5);
        System.out.println(classOne.equals(classTwo));
    }
}

(3)實(shí)驗(yàn)截圖

(4)實(shí)驗(yàn)心得

此題中共有兩個(gè)難點(diǎn)。

第一個(gè)難點(diǎn)在于equals方法的重寫判定。我們需要通過(guò)比較成員變量來(lái)比較類的內(nèi)容,“==”本身不能用來(lái)比較引用對(duì)象的內(nèi)容,但對(duì)于基本類型char和double,“==”卻能夠進(jìn)行內(nèi)容比較。故在equals方法中,我們借助“==”對(duì)基本類型進(jìn)行內(nèi)容比較,進(jìn)而實(shí)現(xiàn)類的實(shí)例比較。

第二個(gè)難點(diǎn)在于實(shí)例創(chuàng)建。如果我們?cè)趧?chuàng)建類時(shí)指定成員變量的值,那就失去了比較的意義。通過(guò)創(chuàng)造構(gòu)造器,使得用戶自行輸入兩個(gè)Value類的實(shí)例的成員變量值,可以更好地幫助我們檢驗(yàn)程序的正確性。

(5)實(shí)驗(yàn)重點(diǎn)

這里涉及了三個(gè)知識(shí)點(diǎn),重寫,判斷實(shí)例的類和向下轉(zhuǎn)型。

重寫即在子類中定義方法名、返回類型和參數(shù)表和父類完全相同的方法,但方法實(shí)現(xiàn)過(guò)程不一樣。這里格外需要注意的是子類中重寫的方法訪問(wèn)權(quán)限只能增大不能減少,Object類中equals方法的訪問(wèn)權(quán)限為public,因此Valuez中重寫的equals方法的訪問(wèn)權(quán)限只能為public。

判斷實(shí)例的類是否是Value,在這個(gè)實(shí)驗(yàn)的程序中使用obj.getClass()==this.getClass() 來(lái)判斷,另外還可以使用obj instanceof Value來(lái)判斷。

只有先經(jīng)過(guò)向上轉(zhuǎn)型的對(duì)象才能繼續(xù)向下轉(zhuǎn)型。如果父類引用的對(duì)象是父類本身,那么在向下轉(zhuǎn)型的過(guò)程中是不安全的,編譯不會(huì)出錯(cuò),但是運(yùn)行時(shí)會(huì)出現(xiàn)java.lang.ClassCastException錯(cuò)誤。

(摘自博主「CN_BIT」,鏈接:https://blog.csdn.net/CN_BIT/article/details/108778669)

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站題目:【Java面向?qū)ο蟆繉?duì)象比較實(shí)驗(yàn)-創(chuàng)新互聯(lián)
文章來(lái)源:http://weahome.cn/article/dhsshi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部