国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java API - Object類的常用API

這篇具有很好參考價值的文章主要介紹了Java API - Object類的常用API。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

Java常用API介紹

API概念

什么是API?

API(Application Programming interface) 應(yīng)用程序編程接口。

簡單來說:就是Java幫我們已經(jīng)寫好的一些方法**,我們直接拿過來用就可以了。**

Object類

Object類的作用:

  • Object類的方法是一切子類對象都可以直接使用的,所以我們要學(xué)習(xí)Object類的方法。
  • 一個類要么默認(rèn)繼承了Object類,要么間接繼承了Object類,Object類是Java中的祖宗類
toString方法
方法名 說明
toString() 默認(rèn)是返回當(dāng)前對象在堆內(nèi)存中的地址信息: 類的全限名@內(nèi)存地址

基本使用:

例如有一個Student類

public class Test {
    public static void main(String[] args) {
        Student stu = new Student();

        // 方式一: 將返回的地址在變量中接收
        String str = stu.toString();
        System.out.println(str);

        // 方式二: 輸出時, 直接調(diào)用toString方法
        System.out.println(stu.toString());

        // 方式三: 直接輸出對象變量, 默認(rèn)可以省略toString方法
        System.out.println(stu);
    }
}

問題引出:

在開發(fā)中直接輸出對象變量,默認(rèn)輸出對象的地址其實(shí)是毫無意義的。

事實(shí)上, 開發(fā)中更多的時候是希望看到對象的內(nèi)容數(shù)據(jù)而不是對象的地址信息。

toString存在的意義:

父類toString()方法存在的意義是為了被子類重寫,以便返回對象的內(nèi)容信息,而不是地址信息??!

演示代碼:

例如我們有如下一個Student類

package com.chenyq.d12_api_object;

/**
    默認(rèn)繼承自O(shè)bject
 */
public class Student {
    private String name;
    private int age;
    private double height;

    public Student() {
    }

    public Student(String name, int age, double height) {
        this.name = name;
        this.age = age;
        this.height = height;
    }

    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 double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }
}

我們可以在該Student類中重寫toString方法


package com.chenyq.d12_api_object;

/**
    默認(rèn)繼承自O(shè)bject
 */
public class Student {
    private String name;
    private int age;
    private double height;

    public Student() {
    }

    public Student(String name, int age, double height) {
        this.name = name;
        this.age = age;
        this.height = height;
    }

    // 重新toString方法
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", height=" + height +
                '}';
    }

    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 double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }
}

此時再調(diào)用Student對象變量的toString方法, 會調(diào)用我們自己重寫的toString, 返回對象的內(nèi)容

public class Test {
    public static void main(String[] args) {
        Student stu = new Student("chenyq", 18, 1.88);
        System.out.println(stu); // Student{name='chenyq, age=18, height=1.88}
    }
}

小結(jié):

Object的toString方法的作用是什么?

  • 讓子類重寫toString方法,以便返回子類對象中的內(nèi)容。
equals方法
方法名 說明
equals(Object o) 默認(rèn)是比較當(dāng)前對象與另一個對象的地址是否相同,相同返回true,不同返回false

基本使用:

我們還是繼續(xù)使用上面的Student類演示

public class Test2 {
    public static void main(String[] args) {
        Student stu1 = new Student("chenyq", 18, 1.88);
        Student stu2 = new Student("chenyq", 18, 1.88);

        // 這里equals調(diào)用的是Object中的
        System.out.println(stu1.equals(stu2)); // false
    }
}

問題思考:

直接比較兩個對象的地址是否相同完全可以用 “==”, 那么為什么要使用equals呢?

equals存在的意義

在開發(fā)中, 其實(shí)我們并不會使用equals方法比較兩個對象的地址, 通常是用來比較兩個對象內(nèi)容是否相同

而父類equals方法存在的意義就是為了被子類重寫,以便子類自己來定制比較規(guī)則。

演示代碼:

重寫equals方法, 自己定制比較規(guī)則: 例如比較兩個對象內(nèi)容是否相同

package com.chenyq.d12_api_object;

import java.util.Objects;

/**
    默認(rèn)繼承自O(shè)bject
 */
public class Student {
    private String name;
    private int age;
    private double height;

    public Student() {
    }

    public Student(String name, int age, double height) {
        this.name = name;
        this.age = age;
        this.height = height;
    }

    /**
     重寫equals方法
     s1 -> this
     s2 -> o
     */
    @Override
    public boolean equals(Object o) {
        // 1. 判斷this和o是否是同一個對象
        if (this == o) return true;
        // 2. 判斷o是否為null以及this和o類型是否相同
        if (o == null || getClass() != o.getClass()) return false;
        // 3. 將o強(qiáng)轉(zhuǎn)為Student類型
        Student student = (Student) o;
        // 4. 返回age, height, name的比較結(jié)果
        return age == student.age && Double.compare(student.height, height) == 0 && Objects.equals(name, student.name);

    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 double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }
}

此時再調(diào)用Student對象的equals方法, 就是調(diào)用的自己重寫的equals文章來源地址http://www.zghlxwxcb.cn/news/detail-401029.html

public class Test2 {
    public static void main(String[] args) {
        Student stu1 = new Student("chenyq", 18, 1.88);
        Student stu2 = new Student("chenyq", 18, 1.88);

        // 這里equals調(diào)用的是自己重寫的, 比較對象內(nèi)容是否相同
        System.out.println(stu1.equals(stu2)); // true
    }
}

到了這里,關(guān)于Java API - Object類的常用API的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java的Object類的方法

    Java的Object類是所有類的根類,它提供了一些通用的方法。下面是一些常用的Object類方法: 1. equals(Object obj):判斷當(dāng)前對象是否與給定對象相等。默認(rèn)情況下,equals方法比較的是對象的引用,但可以通過在具體類中重寫equals方法來改變其比較行為。 2. hashCode():返回當(dāng)前對象的

    2024年02月06日
    瀏覽(25)
  • (八)vtk常用類的常用函數(shù)介紹(附帶代碼示例)

    (八)vtk常用類的常用函數(shù)介紹(附帶代碼示例)

    vtk中類的說明以及函數(shù)使用 https://vtk.org/doc/nightly/html/annotated.html InsertNextPoint(double, double, double):插入點(diǎn)。 InsertNextCell (vtkIdType npts, const vtkIdType *pts):插入單元。 SetRadius(double):設(shè)置球體半徑,默認(rèn)值為 0.5。 SetCenter(double, double, double):設(shè)置球體的中心,默認(rèn)值為 0,0,0。 SetPh

    2024年02月07日
    瀏覽(20)
  • 【JAVA】關(guān)于抽象類的概念

    【JAVA】關(guān)于抽象類的概念

    個人主頁:【??個人主頁】 系列專欄:【??初識JAVA】 在Java中,抽象類是一種特殊的類,它 無法被實(shí)例化 。它 只能被用作其他類的基類 ,以便子類可以繼承它的屬性和方法。今天我們就來談?wù)凧AVA中的抽象類。 抽象類是一種特殊的類, 它不能被實(shí)例化,而只能被繼承

    2024年02月08日
    瀏覽(22)
  • String類的學(xué)習(xí)筆記(上):介紹String類及其常用方法的使用

    String類的學(xué)習(xí)筆記(上):介紹String類及其常用方法的使用

    本文介紹了Java中用來描述操作字符串的String類,和其一些常用的基本操作方法,字符串的創(chuàng)建輸出,字符串對象的比較,字符串查找,字符串的轉(zhuǎn)化,字符串的替換,字符串拆分,字符串截取,和大小寫轉(zhuǎn)換,去除左右空格,子字符串包含,學(xué)會使用這些方法,能更方便的使用操作字符串~ 前言

    2023年04月23日
    瀏覽(37)
  • Java——ArrayList類的常用方法

    ArrayList對象是可變數(shù)組,可以不設(shè)置長度。本文只介紹一些常用方法。該對象是從0下標(biāo)開始計算的。主要分成七個部分,初始化,增加元素,刪除元素,修改元素,查找元素,遍歷,排序。更多方法見https://www.jiyik.com/w/java/java-arraylist 容量大小,加載因子,擴(kuò)容倍數(shù)見https://

    2024年02月13日
    瀏覽(21)
  • Java中String類的常用方法

    一、String 類的概念 java.lang.String 類用于描述字符串,Java程序中所有的字符串面值都可以用該類的對象加以描述。 該類由 final 修飾,表示該類 不能被繼承 。 從 jdk1.9開始該類的底層不使用 char[] 來存儲數(shù)據(jù),而是改成 byte[] 加上編碼標(biāo)記,從而節(jié)約了一些空間。 該類描

    2023年04月08日
    瀏覽(32)
  • Kafka:Topic概念與API介紹

    Kafka:Topic概念與API介紹

    事件被組織并持久地存儲在 Topic 中, Topic 類似于文件系統(tǒng)中的文件夾,事件就是該文件夾中的文件。 Kafka 中的 Topic 始終是多生產(chǎn)者和多訂閱者:一個 Topic 可以有零個、一個或多個生產(chǎn)者向其寫入事件,也可以有零個、一個或多個消費(fèi)者訂閱這些事件。 Topic 中的事件可以根

    2024年02月05日
    瀏覽(25)
  • 【C++ STL】string類最全解析(什么是string?string類的常用接口有哪些?)

    【C++ STL】string類最全解析(什么是string?string類的常用接口有哪些?)

    目錄 一、前言 ?二、什么是 string ? ??? string 類的基本概念 ?? string 類與 char * 的區(qū)別? ??? string 類的作用 ??? 總結(jié) ?三、string 的常用接口詳解 ???string 類對象的默認(rèn)成員函數(shù) ① 構(gòu)造函數(shù)(初始化) ② 賦值重載(初始化) ??string 類對象的訪問及遍歷操作 ① operator[ ]

    2024年04月17日
    瀏覽(30)
  • 【C++ STL】vector類最全詳解(什么是vector?vector類的常用接口有哪些?)

    【C++ STL】vector類最全詳解(什么是vector?vector類的常用接口有哪些?)

    目錄 一、前言 二、什么是vector ? ???vector的基本概念 ??vector的作用是什么 ??總結(jié) 三、 vector的(一維)定義 四、vector(一維)常用接口的使用 ???vector的常見構(gòu)造(初始化) ???vector的遍歷及迭代器的操作 ① operator[ ]? ② at ( )? ③迭代器? ③ 范圍for? ???vector的常見容量操

    2024年02月03日
    瀏覽(25)
  • Java中的String類的常用方法(對于字符串的常用操作)

    Java中的String類的常用方法(對于字符串的常用操作)

    目錄 一、獲取指定索引的字符 二、 獲取指定字符或者字符串的索引位置 三、判斷字符串是否以指定內(nèi)容開頭或結(jié)尾 四、替換指定的字符或者是字符串 五、獲取字符串的子串 六、將字符串轉(zhuǎn)換為字符數(shù)組 ?七、比較字符串的內(nèi)容是否相等 ?八、連接字符串 九、比較兩個字

    2024年02月20日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包