Maison >Java >javaDidacticiel >Qu'est-ce que la méthode Java égale ?

Qu'est-ce que la méthode Java égale ?

藏色散人
藏色散人original
2023-03-10 10:58:0718228parcourir

La méthode java equals est une méthode de la classe d'objet et ne peut être utilisée que pour déterminer le type de référence ; la méthode equals détermine par défaut si les adresses sont égales. Cette méthode est souvent remplacée dans les sous-classes pour déterminer si les contenus sont égaux. . Sa syntaxe d'utilisation est la suivante "public boolean equals(Object obj) {return (this == obj);}".

Qu'est-ce que la méthode Java égale ?

L'environnement d'exploitation de ce tutoriel : système Windows 10, java8, ordinateur Dell G3.

méthode equals en Java

1. "==" opérateur

"==" est un opérateur de comparaison.

  • "==" peut déterminer à la fois les types de base et les types de référence.
  • "=="Si vous jugez le type de base, vous jugerez si les valeurs sont égales. Par exemple : int i=10; double d=10.0
  • "=="Si vous déterminez le type de référence, vous déterminez si les adresses sont égales, c'est-à-dire si elles sont le même objet.

2. Méthode Equals

  • equals est une méthode de la classe d'objet et ne peut être utilisée que pour déterminer le type de référence.
  • La méthode equals détermine si les adresses sont égales par défaut. Cette méthode est souvent remplacée dans les sous-classes pour déterminer si les contenus sont égaux. Par exemple, le code source est égal dans les classes String et Integer.

Code source de la méthode égale dans la classe Objet :

La méthode égale dans la classe Objet compare par défaut si les adresses des objets sont les mêmes.

    public boolean equals(Object obj) {
        return (this == obj);
    }
"hello".equals("abc");

Explication : ceci fait référence à l'objet actuel, cela fait référence à qui a appelé la méthode égal, le bonjour ci-dessus appelle égal, donc cela fait référence à la chaîne bonjour, et l'objet obj à droite de == est passé en abc.

3. Réécrivez l'exercice de la méthode égale

Exercice 1 :

package object;
/*
判断两个person对象的内容是否相等
如果两个person对象的各个属性值都一样,则返回true,反之返回false
 */
public class EqualsExercise {
    public static void main(String[] args) {
        Person person1 = new Person("jack", 10, '男');
        Person person2 = new Person("jack", 10, '男');
        System.out.println(person1.equals(person2));   //输出结果是true
    }
}

class Person {
    private String name;
    private int age;
    private char gender;

    //重写Object的equals方法
    public boolean equals(Object obj) {
        //如果比较的两个对象是同一个对象,则直接返回true
        if (this == obj){   //this就代表调用equals方法的那个对象,obj就是方法里面的实参
            return true;
        }
        //类型判断
        if (obj instanceof Person){  //obj是Person,我们才比较
            //进行 向下转型(即obj转成Person); 因为我需要得到obj的各个属性,如果不转型,拿不到
            Person p = (Person) obj;
            return this.name.equals(p.name) && this.age == p.age && this.gender == p.gender;
        }
        //如果不是person,则直接返回false;总不能拿一个人跟一个狗比
        return false;
    }


    public Person(String name, int age, char gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }
}

Conseils :

Utilisation de instanceof : result = objet instanceof class

instanceof est l'objet à gauche et la classe sur le droit ; quand l'objet Lorsqu'il s'agit d'un objet créé par la bonne classe ou sous-classe, il renvoie vrai sinon, il renvoie faux ;

Exercice 2 :

Quest-ce que la méthode Java égale ?

Explication :

  • sout1 : p1 et p2 sont tous deux des objets, donc == détermine si les adresses sont les mêmes, false
  • sout2 : p1.name et p2. name Les deux sont des chaînes, donc égal ici appelle la méthode égale dans la classe String pour déterminer si le contenu est le même vrai
  • sout3 : p1 et p2 sont tous deux des objets, donc égal ici est la méthode égale dans la classe Object. . , ce qui est jugé est de savoir si les adresses sont les mêmes, false
  • sout4 : s1 et s2 sont tous deux des objets de la classe String, donc égal appelle ici la méthode égale dans la classe String, et ce qui est jugé est de savoir si le contenu sont identiques, vrai
  • sout5 : s1 et s2 sont tous deux des objets, donc == détermine si les adresses sont identiques, faux

Exercice 3 :

Quest-ce que la méthode Java égale ?

Explication :

  • sout1 : 65 et 65,0 sont égaux, vrai
  • sout2 : L'essence des caractères est toujours des nombres Vérifiez le tableau AsciI, A vaut 12, vrai
  • sout3 : Rien à dire
  • sout4 : Rien à dire
  • sout5 : Rien à dire.
  • sout6 : Ils ne sont pas du même type, ==Erreur de compilation directe

Recommandations associées : "Tutoriel vidéo 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