Heim  >  Artikel  >  Java  >  So ermitteln Sie die Gleichheit in Java

So ermitteln Sie die Gleichheit in Java

尚
Original
2019-11-23 09:17:393769Durchsuche

So ermitteln Sie die Gleichheit in Java

Um festzustellen, ob die grundlegenden Datentypen in Java gleich sind, verwenden Sie einfach „==". Wenn gleich, geben Sie true zurück, andernfalls geben Sie false zurück.

obj1==obj2 Bestimmen Sie, ob die beiden Referenzvariablen obj1 und obj2 gleich sind, dh ob die Objekte, auf die sie zeigen, dasselbe Objekt sind. Die Implikation ist, dass „true“ nur zurückgegeben werden kann, wenn die Speicheradressen, auf die die beiden Variablen zeigen, gleich sind. Jedes Objekt verfügt über einen eigenen Speicherbereich, sodass es auf dasselbe Objekt zeigen muss, um „true“ zurückzugeben.

Wenn Sie die Regeln dafür anpassen möchten, ob zwei Objekte (nicht ein Objekt, d. h. die beiden Objekte haben jeweils ihren eigenen Speicher) gleich sind, müssen Sie die Methode equal() in der Klasse überschreiben Definition des Objekts: Wenn die Methode equal() nicht überschrieben wird, besteht die Standardvergleichsmethode darin, zu vergleichen, ob die beiden Objekte dasselbe Objekt sind.

In der Java-API überschreiben einige Klassen die Methode equal(): Ihre Vergleichsregeln sind: genau dann, wenn der Parameter der Methode equal nicht null ist und Typ und Inhalt der beiden Variablen gleich sind vergleichen Das Ergebnis ist wahr.

Zu diesen Klassen gehören: String, Double, Float, Long, Integer, Short, Byte, Boolean, BigDecimal, BigInteger usw. Es gibt zu viele, aber das sind die häufigsten. Sie können die API überprüfen Details Schauen Sie sich einfach die Methode equal() in der Klasse an.

Die Schritte zum Umschreiben der Methode equal() sind im Allgemeinen wie folgt:

1. Verwenden Sie zuerst „==", um festzustellen, ob sie gleich sind.

2. Bestimmen Sie, ob der Parameter der equal()-Methode null ist. Geben Sie false zurück, da das aktuelle Objekt nicht null sein kann , andernfalls wird die Ausnahme java.lang.NullPointerException ausgelöst.

3. Wenn der Parameter nicht null ist und die Laufzeitklassen der beiden Objekte (über getClass() erhalten) nicht gleich sind, geben Sie false zurück, andernfalls fahren Sie mit der Beurteilung fort.

4. Bestimmen Sie, ob die Mitglieder der Klasse gleich sind. Fühlen Sie sich einfach frei, damit zu spielen.

Beispiel:

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

Für mehr Java-Kenntnisse beachten Sie bitte das Java-Grundlagen-Tutorial.

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie die Gleichheit in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn