国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Java JavaErste Schritte Was sind die Funktionen der Funktion equal() und ?=='?

Was sind die Funktionen der Funktion equal() und ?=='?

Jul 10, 2020 pm 04:59 PM
== equals()

Was sind die Funktionen der Funktion equal() und ?=='?

Werfen wir zun?chst einen Blick auf ihre Unterschiede:

(Empfohlenes Lernen: Java-Einstiegsprogramm)

  • Die Methode

    equals() wird verwendet, um zu vergleichen, ob die Inhalte zweier Objekte gleich sind. Da alle Klassen von der Klasse java.lang.Object erben, ist sie auf alle Objekte anwendbar, wenn diese Methode nicht überschrieben wird . Die aufgerufene Methode ist immer noch die Methode in der Object-Klasse, aber die equal-Methode in Object gibt die Beurteilung von == zurück Anhand der (Heap-)Speicheradresse des darin gespeicherten Objekts wird ermittelt, ob die Adressen zweier Objekte gleich sind, also auf dasselbe Objekt verweisen.

  • equals()-Funktion

equals()-Funktion wird verwendet, um zu bestimmen, ob zwei Objekte gleich sind. equals() ist in Object.java von JDK definiert. Unterscheiden Sie, ob zwei Objekte gleich sind, indem Sie beurteilen, ob ihre Adressen gleich sind (d. h. ob es sich um dasselbe Objekt handelt). Der Quellcode lautet wie folgt:

public boolean equals(Object obj) {
    return (this == obj);
}

Da die Methode equal() in Object.java definiert ist, bedeutet dies, dass alle Java-Klassen die Methode equal() implementieren und alle Klassen zwei Objekte über equal( vergleichen k?nnen) ). Ob die Objekte gleich sind.

Wir haben jedoch bereits gesagt, dass die Verwendung der Standardmethode ?equals()“ der Methode ?==“ entspricht. Daher überschreiben wir normalerweise die Methode equal(): Wenn die Inhalte der beiden Objekte gleich sind, gibt die Methode equal() true zurück, andernfalls gibt sie fasle zurück.

Das Folgende ist in zwei Kategorien unterteilt, basierend darauf, ?ob die Klasse die Methode equal() abdeckt“.

Wenn eine Klasse die Methode equal() nicht abdeckt, vergleicht sie beim Vergleich zweier Objekte über equal() tats?chlich, ob die beiden Objekte dasselbe Objekt sind. Zu diesem Zeitpunkt entspricht dies dem Vergleich der beiden Objekte über ?==“.

  • Wir k?nnen die Methode equal() der Klasse überschreiben, damit equal() mithilfe anderer Methoden vergleichen kann, ob zwei Objekte gleich sind. Der übliche Ansatz ist: Wenn die Inhalte der beiden Objekte gleich sind, gibt die Methode equal() true zurück, andernfalls gibt sie fasle zurück.

  • Das Folgende ist ein Beispiel, um die beiden oben genannten Situationen zu veranschaulichen:

  • 1. Der Fall, dass die Methode equal() nicht abgedeckt wird
public class EqualsTest {
    public static void main(String[] args) {
        // 新建2個相同內(nèi)容的Person對象,
        // 再用equals比較它們是否相等
        User user1 = new User("James", 100);
        User user2 = new User("James", 100);
        System.out.printf("比較結(jié)果:" + user1.equals(user2));
    }
 
    /**
     * @desc User類。
     */
    static class User {
        int age;
        String name;
 
        public User(String name, int age) {
            this.name = name;
            this.age = age;
        }
 
        public String toString() {
            return name + " - " + age;
        }
    }
}

Betrieb Ergebnisse:

false

Ergebnisanalyse:

Wir verwenden user1.equals(user2), um ?zu vergleichen, ob user1 und user2 gleich sind“. Tats?chlich ist dies die Methode equal() von Object.java aufgerufen, das hei?t Called (user1==user2).

Es wird verglichen, ?ob p1 und p2 dasselbe Objekt sind“. Anhand der Definitionen von Benutzer1 und Benutzer2 k?nnen wir erkennen, dass sie zwar denselben Inhalt haben, aber zwei verschiedene Objekte sind, sodass das Rückgabeergebnis falsch ist.

(Empfohlenes Video-Tutorial:

Java-Video-Tutorial

)

2. überschreiben der equal()-Methode ?ndern Sie den obigen EqualsTest und überschreiben Sie equal( ) Methode:

public class EqualsTest {
    public static void main(String[] args) {
        // 新建2個相同內(nèi)容的Person對象,
        // 再用equals比較它們是否相等
        User user1 = new User("James", 100);
        User user2 = new User("James", 100);
        System.out.printf("比較結(jié)果:" + user1.equals(user2));
    }
 
    /**
     * @desc User類。
     */
    static class User {
        int age;
        String name;
 
        public User(String name, int age) {
            this.name = name;
            this.age = age;
        }
 
        public String toString() {
            return name + " - " + age;
        }
 
        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            User other = (User) obj;
            if (age != other.age)
                return false;
            if (name == null) {
                if (other.name != null)
                    return false;
            } else if (!name.equals(other.name))
                return false;
            return true;
        }
    }
}

Laufergebnis:

true

Ergebnisanalyse: Wir haben die Funktion equal() des Benutzers in EqualsTest.java umgeschrieben: Wenn der Name und das Alter von zwei Benutzerobjekten gleich sind, wird ?true“ zurückgegeben. Daher gibt das laufende Ergebnis ?true“ zurück. Die Funktion von

==

?==“: Seine Funktion besteht darin, zu bestimmen, ob die Adressen zweier Objekte gleich sind. Das hei?t, um festzustellen, ob das Referenzobjekt dasselbe Objekt im Heap ist, auf das verwiesen wird. Wir wissen, dass sich alle neuen Objekte im Heap befinden. Die Verweise auf Objekte werden im Stapel gespeichert, insbesondere im Stapelrahmen. Schauen wir uns den folgenden Codeabschnitt an:

public static void main(String[] args) {
        User user1 = new User("James", 100);
        User user2 = new User("James", 100);
        System.out.println("user1.equals(user2):" + user1.equals(user2));
        System.out.println("user1==user2:" + (user1==user2));
}
Ausgabeergebnis:

user1.equals(user2):true
user1==user2:false

zeigt auf zwei Objekte in den Heap-Bl?cken liegen in unterschiedlichen Bereichen, daher wird beim Vergleich mit ?==“ false zurückgegeben.

Das obige ist der detaillierte Inhalt vonWas sind die Funktionen der Funktion equal() und ?=='?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
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

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276