搜尋
首頁JavaJava基礎java中判斷是否相等的方法

java中判斷是否相等的方法

Nov 23, 2019 am 09:17 AM
java

java中判斷是否相等的方法

java中的基本資料型態判斷是否相等,直接使用」==」就行了,相等回傳true,否則,回傳false。

obj1==obj2 判斷是obj1,obj2這兩個引用變數是否相等,也就是它們所指向的物件是否為同一個物件。言下之意就是要求兩個變數所指記憶體位址相等的時候,才能傳回true,每個物件都有自己的一塊內存,因此必須指向同一個物件才回傳ture。

如果想要自訂兩個物件(不是一個對象,也就是這兩個物件分別有自己的一塊記憶體)是否相等的規則,那麼必須在物件的類別定義中重寫equals()方法,如果不重寫equals()方法的話,預設的比較方式是比較兩個物件是否為同一個物件。

在Java API中,有些類別重寫了equals()方法,它們的比較規則是:當且僅當該equals方法參數不是null,兩個變數的型別、內容都相同,則比較結果為true。

這些類別包括:String、Double、Float、Long、Integer、Short、Byte、、Boolean、BigDecimal、BigInteger等等,太多太多了,但是常見的就這些了,具體可以查看API中類別的equals()方法,就知道了。

重寫equals()方法的步驟一般如下:

1、先用「==」判斷是否相等。

2、判斷equals()方法的參數是否為null,如果為null,則傳回false;因為目前物件不可能為null,如果為null,則不能呼叫其equals()方法,否則拋java.lang.NullPointerException異常。

3、當參數不為null,如果兩個物件的執行時間類別(透過getClass()取得)不相等,傳回false,否則繼續判斷。

4、判斷類別的成員是否對應相等。往下就隨意發揮了。

範例:

public class Dog {
    private int age;
    private String name;
    public Dog(int age,String name){
        this.age=age;
        this.name=name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public boolean equals(Object obj) {
        if(obj==null){
            return false;
        }
        if(this==obj){
            return true;
        }
        if(obj instanceof Dog){
            Dog dog=(Dog)obj;
            if(dog.age==this.age&&dog.name.equals(this.name)){
                return true;
            }else{
                return false;
            }
        }
        return false;
    }
    public static void main(String[] args){
        Dog dog1=new Dog(12,"wangcai");
        Dog dog2=new Dog(12,"wangcai");
        Dog dog3=new Dog(16,"wangcai");
        System.out.println(dog1.equals(dog2));//true
        System.out.println(dog1.equals(dog3));//false
    }}

更多java知識請關注java基礎教學

以上是java中判斷是否相等的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器