Maison > Java > javaDidacticiel > Que signifie égal en Java ?

Que signifie égal en Java ?

下次还敢
Libérer: 2024-05-09 06:21:18
original
989 Les gens l'ont consulté

equal() 方法在 Java 中用于比较两个对象的相等性,它返回布尔值表示是否相等。equal() 方法通过检查对象引用、类型和委托给子类来进行比较。对于自定义类,可以通过重写 equal() 方法来自定义比较规则,遵循自反性、对称性、传递性和一致性原则。

Que signifie égal en Java ?

equal() 方法在 Java 中的作用

在 Java 中,equal() 方法是 Object 类的核心方法,它用于比较两个对象的相等性。该方法返回一个布尔值,表示两个对象是否相等。

具体实现

equal() 方法通过以下步骤来比较两个对象:

  1. 检查对象引用:如果两个对象引用指向同一个对象,则它们相等。
  2. 检查对象的类型:如果两个对象不是同类型的,则它们不相等。
  3. 委托给子类:如果两个对象是同类型的,则该方法将委托给子类来进行进一步比较。

重写 equal() 方法

对于自定义类,可以通过重写 equal() 方法来自定义比较规则。重写的 equal() 方法应遵循以下原则:

  • 自反性:对于任何非空引用值 x,x.equals(x) 应返回 true。
  • 对称性:对于任何非空引用值 x 和 y,如果 x.equals(y),那么 y.equals(x) 也应返回 true。
  • 传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 为 true,并且 y.equals(z) 为 true,那么 x.equals(z) 也应返回 true。
  • 一致性:对于任何非空引用值 x 和 y,如果 hashCode() 方法多次调用,则 x.equals(y) 的结果应保持一致。

示例

以下是一个重写 equal() 方法的自定义类示例:

<code class="java">class Person {
    private String name;
    private int age;

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Person) {
            Person other = (Person) obj;
            return this.name.equals(other.name) && this.age == other.age;
        }
        return false;
    }
}</code>
Copier après la connexion

在该示例中,equal() 方法比较了两个 Person 对象的 name 和 age 字段来确定相等性。

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!

source:php.cn
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