最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基礎(chǔ)之Object類詳解

 更新時間:2021年05月06日 14:32:45   作者:qq_45671732  
這篇文章主要介紹了Java基礎(chǔ)之Object類詳解,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下

object類的介紹

object是所有類的直接父類或者是間接父類,為什么這么說呢?

可以查詢java8的API幫助文檔:

在這里插入圖片描述

可見在這樣的一個類樹中,所有的類的根還是Object類

在IDEA中新建一個類,系統(tǒng)會默認(rèn)繼承Object類

public class Pet extends Object{

}

那么Dog繼承了Pet類的屬性和行為方法,還會繼承Object類的屬性和行為方法了嗎?這一點是肯定的,Pet類作為Object類的子類,Dog類作為Pet類的子類,所以說Object是Dog類的間接父類,當(dāng)然也繼承了Object的特性。

也就是說Object類是所有類的祖宗類,也是所有類的根,而Object翻譯過來是對象的意思。當(dāng)然,也就是程序猿常用的一句話:萬物皆對象。

也就是可以在類中調(diào)用Object類的相關(guān)屬性和行為方法了:

在這里插入圖片描述

比如說equals就是其中一個。
那么Object類中被子類經(jīng)常重寫的方法有哪些呢?

方法  說明
toString() 返回當(dāng)前對象本身的有關(guān)信息,按照字符串對象返回
equals() 比較兩個對象是否是同一個對象,是則返回
truehashCode() 返回該對象的哈希代碼值
getClass() 獲取當(dāng)前對象所屬的類信息,返回Class對象

接下來以表格中的Object方法為例,簡述它的使用方法:

equals()方法

Object類的equals()方法是用來比較兩個對象是否是同一個對象的,是則返回true,比較類似于操作符中的==。在簡單數(shù)據(jù)類型(int float double等)中,直接比較值;在引用數(shù)據(jù)類型中比較的是是否是同一個對象。

package cn.zhz.Kind;

//學(xué)生類
public class Student01 extends Object {
    private int sid;
    private String name;
    private int age;
    private int weight;

    public Student01() {

    }

    public Student01(int sid, String name, int age, int weight) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.weight = weight;
    }

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    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;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    public static void main(String[] args) {
        //student01和student02不是同一個對象
        Student01 student01 = new Student01(1, "張三", 12, 90);
        Student01 student02 = new Student01(1, "張三", 12, 90);
        //判斷兩個對象是否是同一個對象:==或者是equals
        System.out.println(student01 == student02);
        System.out.println(student01.equals(student02));
        //student03和student04是同一個對象
        Student01 student03 = new Student01(2, "趙三", 22, 450);
        Student01 student04 = student03;
        System.out.println(student03 == student04);
        System.out.println(student03.equals(student04));
    }
}

重寫Object類中的常用方法

Object類中的equals()是用來判斷兩個對象是否是同一個對象,那么我們要求在實際中兩名學(xué)員的學(xué)號和姓名相同就為同一個對象,在這種情況下就需要考慮對equals()方法進(jìn)行重寫

重寫Object類中的equals方法

package cn.zhz.Kind;

import java.util.Objects;

//學(xué)生類
public class Student01 extends Object {
    private int sid;
    private String name;
    private int age;
    private int weight;

    public Student01() {

    }

    public Student01(int sid, String name, int age, int weight) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.weight = weight;
    }

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    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;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    @Override
    //將equals()方法體自定義為我們自己的比較規(guī)則即可:兩個學(xué)生的學(xué)號和姓名相同,就認(rèn)為是同一個學(xué)生對象
    //判斷obj和this(當(dāng)前學(xué)生對象)是否是同一個對象
    public boolean equals(Object obj) {
        if (this == obj) {
            //如果this當(dāng)前學(xué)生對象和obj內(nèi)存地址相同,==結(jié)果為true,就認(rèn)為兩者是同一個對象
            return true;
        }
        //如果傳進(jìn)來的obj對象不是學(xué)生類型(student)類型,結(jié)果一定是false
        //instanceof運(yùn)算符:用來判斷某一個對象是否是某種類型 對象名稱 instanceof 類型名
        if (!(obj instanceof Student01)) {
            return false;
        }
        //如果obj是Student01類型
        Student01 s = (Student01) obj;
        //比較s和this的sid和name即可
        if (this.sid == s.sid && this.name.equals(s.name)) {
            return true;
        } else {
            return false;
        }
    }


    public static void main(String[] args) {
        //student01和student02不是同一個對象
        Student01 student01 = new Student01(1, "張三", 12, 90);
        Student01 student02 = new Student01(1, "張三", 12, 90);
        //判斷兩個對象是否是同一個對象:==或者是equals
        System.out.println(student01 == student02);
        System.out.println(student01.equals(student02));
        //student03和student04是同一個對象
        Student01 student03 = new Student01(2, "趙三", 22, 450);
        Student01 student04 = student03;
        System.out.println(student03 == student04);
        System.out.println(student03.equals(student04));
    }
}

instanceof用于判斷一個引用類型所引用的對象是否是一個類的實例

重寫toString()方法

package cn.zhz.Kind;

import java.util.Objects;

//學(xué)生類
public class Student01 extends Object {
    private int sid;
    private String name;
    private int age;
    private int weight;

    public Student01() {

    }

    public Student01(int sid, String name, int age, int weight) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.weight = weight;
    }

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    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;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    @Override
    //將equals()方法體自定義為我們自己的比較規(guī)則即可:兩個學(xué)生的學(xué)號和姓名相同,就認(rèn)為是同一個學(xué)生對象
    //判斷obj和this(當(dāng)前學(xué)生對象)是否是同一個對象
    public boolean equals(Object obj) {
        if (this == obj) {
            //如果this當(dāng)前學(xué)生對象和obj內(nèi)存地址相同,==結(jié)果為true,就認(rèn)為兩者是同一個對象
            return true;
        }
        //如果傳進(jìn)來的obj對象不是學(xué)生類型(student)類型,結(jié)果一定是false
        //instanceof運(yùn)算符:用來判斷某一個對象是否是某種類型 對象名稱 instanceof 類型名
        if (!(obj instanceof Student01)) {
            return false;
        }
        //如果obj是Student01類型
        Student01 s = (Student01) obj;
        //比較s和this的sid和name即可
        if (this.sid == s.sid && this.name.equals(s.name)) {
            return true;
        } else {
            return false;
        }
    }

    public String toString() {
        return this.name;
    }

    public static void main(String[] args) {
        //student01和student02不是同一個對象
        Student01 student01 = new Student01(1, "張三", 12, 90);
        Student01 student02 = new Student01(1, "張三", 12, 90);
        //判斷兩個對象是否是同一個對象:==或者是equals
        System.out.println(student01 == student02);
        System.out.println(student01.equals(student02));
        //student03和student04是同一個對象
        Student01 student03 = new Student01(2, "趙三", 22, 450);
        Student01 student04 = student03;
        System.out.println(student03 == student04);
        System.out.println(student03.equals(student04));
        System.out.println("-----------------");
        //如下兩句代碼作用相同,輸出一個對象時,等同于調(diào)用了它的toString()方法
        System.out.println(student01.toString());
        System.out.println(student01);
        String s = "test";
        System.out.println(s.toString());
        System.out.println(s);
    }
}

到此這篇關(guān)于Java基礎(chǔ)之Object類詳解的文章就介紹到這了,更多相關(guān)java Object類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java分布式Session共享解決方案

    詳解Java分布式Session共享解決方案

    這篇文章主要介紹了詳解Java分布式Session共享解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 教你怎么使用Java實現(xiàn)WebSocket

    教你怎么使用Java實現(xiàn)WebSocket

    這篇文章主要介紹了教你怎么使用Java WebSocket,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Java技巧:快速獲取圖片拍攝時間

    Java技巧:快速獲取圖片拍攝時間

    想知道如何用Java讀取圖片的拍攝時間嗎?在這篇指南中,我將向你展示如何利用Java編程語言輕松獲取圖像的拍攝時間信息,不要錯過這個簡單而有用的技巧!
    2023-12-12
  • 使用JMF實現(xiàn)java視頻播放器

    使用JMF實現(xiàn)java視頻播放器

    這篇文章主要為大家詳細(xì)介紹了使用JMF實現(xiàn)java視頻播放器的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Spring AOP的底層實現(xiàn)方式-代理模式

    Spring AOP的底層實現(xiàn)方式-代理模式

    這篇文章主要介紹了Spring AOP的底層實現(xiàn)方式-代理模式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 一文了解為什么Java中只有值傳遞

    一文了解為什么Java中只有值傳遞

    Java?傳參是值傳遞還是引用傳遞?這個問題很基礎(chǔ),但是許多人都有點懵。本文就來通過一些示例帶大家詳細(xì)了解一下,需要的可以參考一下
    2022-07-07
  • java中transient關(guān)鍵字用法分析

    java中transient關(guān)鍵字用法分析

    這篇文章主要介紹了java中transient關(guān)鍵字用法,以實例形式分析了java中transient關(guān)鍵字的功能及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Java配置win10環(huán)境變量過程圖解

    Java配置win10環(huán)境變量過程圖解

    這篇文章主要介紹了Java配置win10環(huán)境變量過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • SpringBoot開發(fā)存儲服務(wù)器實現(xiàn)過程詳解

    SpringBoot開發(fā)存儲服務(wù)器實現(xiàn)過程詳解

    這篇文章主要為大家介紹了SpringBoot開發(fā)存儲服務(wù)器實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Java深入淺出理解快速排序以及優(yōu)化方式

    Java深入淺出理解快速排序以及優(yōu)化方式

    快速排序由于排序效率在同為O(N*logN)的幾種排序方法中效率較高,因此經(jīng)常被采用,再加上快速排序思想----分治法也確實實用,因此很多軟件公司的筆試面試,包括像騰訊,微軟等知名IT公司都喜歡考這個,還有大大小的程序方面的考試如軟考,考研中也常常出現(xiàn)快速排序的身影
    2021-11-11

最新評論

南溪县| 焉耆| 芦山县| 新宾| 南漳县| SHOW| 榆社县| 滦平县| 博白县| 华坪县| 盐池县| 聂拉木县| 台北市| 乌审旗| 会同县| 纳雍县| 博白县| 大化| 正阳县| 七台河市| 江陵县| 蓬安县| 交城县| 淮滨县| 卢龙县| 砀山县| 开江县| 元朗区| 高要市| 遵义县| 乐山市| 邵阳县| 米泉市| 辽中县| 砀山县| 汉中市| 赞皇县| 精河县| 临邑县| 临漳县| 浮梁县|