Maison > Java > javaDidacticiel > Comment utiliser correctement la méthode equals() de la classe Java Object ?

Comment utiliser correctement la méthode equals() de la classe Java Object ?

WBOY
Libérer: 2023-05-07 08:13:07
avant
844 Les gens l'ont consulté

Concept de base :

  • La classe Object est située dans le package java.lang. Le package java.lang contient le package java.lang. les classes les plus basiques et principales seront automatiquement importées lors de la compilation ;

  • La classe Object est l'ancêtre de toutes les classes Java. Chaque classe utilise Object comme superclasse. Tous les objets (y compris les tableaux) implémentent les méthodes de cette classe. Vous pouvez utiliser une variable de type Object pour pointer vers n'importe quel type d'objet

equals() méthode : Comparez deux objets pour voir si ils sont identiques#🎜🎜 #

    Si deux objets ont le même type et les mêmes valeurs d'attribut, on dit que les deux objets sont égaux. Si deux objets de référence font référence au même objet, les deux variables sont dites identiques. Le prototype de la fonction égale définie dans la classe Object est :

public boolean equals(Object);

Il détermine si deux objets sont identiques, pas s'ils sont égaux

Comment utiliser correctement la méthode equals() de la classe Java Object ?

  • ①Peut gérer uniquement les variables de type référence

    #🎜🎜 #
  • ②Dans la classe Object, on constate que equals() compare toujours si les valeurs d'adresse​​des deux variables de référence sont égales

    # 🎜🎜#

    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;
        }
    }
    Copier après la connexion
    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);
        }
    }
    Copier après la connexion
    #🎜🎜 #

Vous pouvez voir à partir des résultats en cours d'exécution que la méthode égale dans Object compare si deux objets sont identiques,

# 🎜🎜# et la méthode equals dans la classe String Ce qui est comparé est de savoir si les valeurs des chaînes sont égales. Veuillez regarder la méthode égale dans String.javaComment utiliser correctement la méthode equals() de la classe Java Object ?

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;
    }
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal