Java常用類之Object類-創(chuàng)新互聯(lián)

Object類
  • 超類、基類,所有類的直接或間接父類,位于繼承樹的最頂層(根類)。
  • 任何類,如沒有書寫extends顯示繼承某個(gè)類,都默認(rèn)直接繼承Object類,否則為間接繼承。
  • Object類中所定義的方法,是所有對(duì)象(包括數(shù)組)都具備的方法。
  • Object類可以存儲(chǔ)任何對(duì)象。
    • 作為參數(shù),可接受任何對(duì)象。
    • 作為返回值,可返回任何對(duì)象。

在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的槐蔭網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!Object類常用方法 getClass()方法
  • public final 類getClass() {}
  • 返回引用中存儲(chǔ)的實(shí)際對(duì)象類型。
  • 應(yīng)用:通常用于判斷兩個(gè)引用中實(shí)際存儲(chǔ)對(duì)象類型是否一致。
hashCode()方法
  • public int hashCode() {}
  • 返回該對(duì)象的哈希碼值。
  • 哈希值根據(jù)對(duì)象的地址或字符串或數(shù)字使用hash算法計(jì)算出來(lái)的int類型的數(shù)值。
  • 一般情況下相同對(duì)象返回相同哈希碼。
toString()方法
  • public String toString() {}
  • 返回該對(duì)象的字符串表示(表現(xiàn)形式)。
  • 可以根據(jù)程序需求覆蓋(重寫)該方法,如:展示各個(gè)屬性值。
equals()方法
  • public boolean equals(Object obj) {}
  • 默認(rèn)實(shí)現(xiàn)為(this==obj),比較兩個(gè)對(duì)象地址是否相同。
  • 可進(jìn)行覆蓋(重寫),比較兩個(gè)對(duì)象內(nèi)容是否相同。
    • equals()方法覆蓋步驟:
      1. 比較兩個(gè)引用是否指向同一個(gè)對(duì)象。
      2. 判斷obj是否為null。
      3. 判斷兩個(gè)引用指向的實(shí)際對(duì)象類型是否一致。
      4. 強(qiáng)制類型轉(zhuǎn)換。
      5. 依次比較各個(gè)屬性值是否相同。
finalize()方法
  • 當(dāng)對(duì)象被判定為垃圾對(duì)象時(shí),由JVM自動(dòng)調(diào)用此方法,用以標(biāo)記垃圾對(duì)象,進(jìn)入回收隊(duì)列。
  • 垃圾對(duì)象:沒有有效引用指向此對(duì)象時(shí),為垃圾對(duì)象。
  • 垃圾回收:由GC銷毀垃圾對(duì)象,釋放數(shù)據(jù)存儲(chǔ)空間。
  • 自動(dòng)回收機(jī)制:JVM的內(nèi)存耗盡,一次性回收所有垃圾對(duì)象。
  • 手動(dòng)回收機(jī)制:使用System.gc();通知JVM執(zhí)行垃圾回收。

例:

public class Student {//實(shí)例變量
    private String name;
    private int age;
    //添加構(gòu)造方法
    public Student(String name, int age) {this.name = name;
        this.age = age;
    }
    public String getName() {return name;
    }
    public void setName(String name) {this.name = name;
    }
    public int getAge() {return age;
    }
    public void setAge(int age) {this.age = age;
    }

    //重寫toString方法
    @Override
    public String toString() {return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    
    //重寫equals()方法
    @Override
    public boolean equals(Object obj){//1. 比較兩個(gè)引用是否指向同一個(gè)對(duì)象。
        if(this==obj){return true;
        }
        //2. 判斷obj是否為null。
        if(obj==null){return false;
        }
        //3. 判斷兩個(gè)引用指向的實(shí)際對(duì)象類型是否一致。
        if(obj instanceof Student){//4. 強(qiáng)制類型轉(zhuǎn)換。
            Student s=(Student)obj;
            //5. 依次比較各個(gè)屬性值是否相同。
            if(this.name.equals(s.getName())&&this.age==s.getAge()){return true;
            }
        }
        return false;
    }
}
//測(cè)試
public class TestStudent {public static void main(String[] args) {   Student s1=new Student("xxx",20);
       Student s2=new Student("www",22);

        //getClass方法:判斷s1和s2是不是同一個(gè)類型
        Class class1=s1.getClass();
        Class class2=s2.getClass();
        if (class1==class2){System.out.println("s1和s2是同一個(gè)類型");
        }
        else{System.out.println("s1和s2不是同一個(gè)類型");
        }

        //hashCode方法
        System.out.println(s1.hashCode());  //返回1784662007
        System.out.println(s2.hashCode());  //返回997110508
        Student s3=s1;
        System.out.println(s3.hashCode());  //返回1784662007,與s1相同
        //在棧里面有兩個(gè)變量s1和s3,這兩個(gè)變量都指向堆里的同一個(gè)對(duì)象

        //toString方法
        System.out.println(s1.toString());  //返回Student{name='xxx', age=20}
        System.out.println(s2.toString());  //返回Student{name='www', age=22}

        //equals方法:判斷兩個(gè)對(duì)象是否相等
        System.out.println(s1.equals(s2));  //返回false
        Student s4=new Student("aaa",17);
        Student s5=new Student("aaa",17);
        System.out.println(s4.equals(s5));  //沒有重寫equals()方法之前返回false,重寫之后返回true
    }
}

本人學(xué)習(xí)筆記,若有錯(cuò)誤或者不足之處,歡迎大家積極交流并給予指正。

你是否還在尋找穩(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)查看詳情吧

文章名稱:Java常用類之Object類-創(chuàng)新互聯(lián)
瀏覽路徑:http://muchs.cn/article16/ddpjgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)靜態(tài)網(wǎng)站、定制開發(fā)域名注冊(cè)、定制網(wǎng)站、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司