Heim >Java >javaLernprogramm >Wie verwende ich die Methode equal() der Java-Object-Klasse richtig?

Wie verwende ich die Methode equal() der Java-Object-Klasse richtig?

WBOY
WBOYnach vorne
2023-05-07 08:13:07839Durchsuche

Grundlegende Konzepte:

  • Die Object-Klasse befindet sich im Paket java.lang. Das Paket java.lang enthält die grundlegendsten und wichtigsten Klassen von Java, die während der Kompilierung automatisch importiert werden Die Objektklasse besteht aus allen Vorfahren der Java-Klasse. Jede Klasse verwendet Object als Oberklasse. Alle Objekte (einschließlich Arrays) implementieren die Methoden dieser Klasse. Sie können eine Variable vom Typ Objekt verwenden, um auf einen beliebigen Objekttyp zu zeigen.

  • equals()-Methode:
  • Vergleichen Sie, ob zwei Objekte gleich sind.

Wenn zwei Objekte denselben Typ und denselben Attributwert haben, es heißt so. Beide Objekte sind gleich. Wenn zwei Referenzobjekte auf dasselbe Objekt verweisen, werden die beiden Variablen als gleich bezeichnet. Der Prototyp der in der Object-Klasse definierten Funktion equal ist:

public boolean equal(Object);Es bestimmt, ob zwei Objekte gleich sind, nicht, ob sie gleich sind

Wie verwende ich die Methode equal() der Java-Object-Klasse richtig?

①Es kann nur verarbeiten Referenztypvariablen
  • ②In der Object-Klasse wurde festgestellt, dass equal() immer noch vergleicht, ob die Adresswerte der beiden Referenzvariablen gleich sind
  • package com.example.demo.test;
    
    public class Person {
    
        private String userName;
        private String age;
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getAge() {
            return age;
        }
    
        public void setAge(String age) {
            this.age = age;
        }
    }
    package com.example.demo.test;
    
    public class Test {
    
        public static void main(String[] args) {
            Person p1 = new Person();
            Person p2 = new Person();
            System.out.println(p1.equals(p2));
            System.out.println(p1 == p2);
    
            /*
             * String类重写了Object类的equals()方法,比较是两个对象的实体内容"是否完全相同。
             */
            String s1 = new String("AA");
            String s2 = new String("AA");
            System.out.println(s1.equals(s2));
            System.out.println(s1 == s2);
        }
    }

Aus dem laufenden Im Ergebnis können wir sehen, dass die Methode „equals“ in Object vergleicht, ob die beiden Objekte gleich sind, und die Methode „equals“ in der Klasse „String“ vergleicht, ob die Werte der Zeichenfolgen gleich sind. Bitte schauen Sie sich die Methode equal in String.java an

public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

Das obige ist der detaillierte Inhalt vonWie verwende ich die Methode equal() der Java-Object-Klasse richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen