Maison >Java >JavaBase >Comment déterminer l'égalité en Java

Comment déterminer l'égalité en Java

尚
original
2019-11-23 09:17:393884parcourir

Comment déterminer l'égalité en Java

Pour déterminer si les types de données de base en Java sont égaux, utilisez simplement "==". Si égal, renvoyez vrai, sinon, renvoyez faux.

obj1==obj2 Déterminez si les deux variables de référence obj1 et obj2 sont égales, c'est-à-dire si les objets vers lesquels elles pointent sont le même objet. L'implication est que true ne peut être renvoyé que lorsque les adresses mémoire pointées par les deux variables sont égales. Chaque objet possède sa propre partie de mémoire, il doit donc pointer vers le même objet pour renvoyer true.

Si vous souhaitez personnaliser les règles indiquant si deux objets (pas un objet, c'est-à-dire que les deux objets ont chacun leur propre espace de mémoire) sont égaux, vous devez remplacer la méthode equals() dans la classe définition de l'objet, si la méthode equals() n'est pas remplacée, la méthode de comparaison par défaut consiste à comparer si les deux objets sont le même objet.

Dans l'API Java, certaines classes remplacent la méthode égal(). Leurs règles de comparaison sont : si et seulement si le paramètre de la méthode égal n'est pas nul et que le type et le contenu des deux variables sont les mêmes, alors comparer Le résultat est vrai.

Ces classes incluent : String, Double, Float, Long, Integer, Short, Byte, Boolean, BigDecimal, BigInteger, etc. Il y en a trop, mais ce sont les plus courantes. Vous pouvez vérifier l'API. détails Il suffit de regarder la méthode equals() dans la classe.

Les étapes de réécriture de la méthode equals() sont généralement les suivantes :

1. Utilisez d'abord "==" pour déterminer si elles sont égales.

2. Déterminez si le paramètre de la méthode equals() est nul. S'il est nul, renvoyez false car l'objet actuel ne peut pas être nul. S'il est nul, sa méthode equals() ne peut pas être appelée. , sinon il lancera une exception java.lang.NullPointerException.

3. Lorsque le paramètre n'est pas nul, si les classes d'exécution des deux objets (obtenues via getClass()) ne sont pas égales, renvoyez false, sinon continuez à juger.

4. Déterminez si les membres de la classe sont égaux. N'hésitez pas à jouer avec.

Exemple :

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

Pour plus de connaissances sur Java, veuillez prêter attention au tutoriel de base de Java.

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!

Déclaration:
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