ホームページ >Java >&#&チュートリアル >Javaでは等しいとはどういう意味ですか?

Javaでは等しいとはどういう意味ですか?

下次还敢
下次还敢オリジナル
2024-05-09 06:21:18973ブラウズ

equal() メソッドは、Java で 2 つのオブジェクトの同等性を比較するために使用され、それらが等しいかどうかを示すブール値を返します。 equal() メソッドは、オブジェクト参照、型、およびサブクラスへの委任をチェックすることによって比較を実行します。カスタム クラスの場合、反射性、対称性、推移性、一貫性の原則に従って、equal() メソッドをオーバーライドすることで比較ルールをカスタマイズできます。

Javaでは等しいとはどういう意味ですか?

Javaにおけるequal()メソッドの役割

Javaでは、equal()メソッドはObjectクラスのコアメソッドであり、2つのオブジェクトの同等性を比較するために使用されます。このメソッドは、2 つのオブジェクトが等しいかどうかを示すブール値を返します。

具体的な実装

equal() メソッドは、次の手順で 2 つのオブジェクトを比較します。

  1. オブジェクト参照を確認する: 2 つのオブジェクト参照が同じオブジェクトを指している場合、それらは等しいです。
  2. オブジェクトのタイプのチェック: 2 つのオブジェクトが同じタイプでない場合、それらは等しくありません。
  3. サブクラスへの委任: 2 つのオブジェクトが同じ型である場合、このメソッドはさらに比較するためにサブクラスに委任します。

equal() メソッドをオーバーライドする

カスタム クラスの場合、equal() メソッドをオーバーライドすることで比較ルールをカスタマイズできます。オーバーライドされたequal()メソッドは、次の原則に従う必要があります:

  • Reflexivity: x.equals(x)は、null以外の参照値xに対してtrueを返す必要があります。
  • 対称: null 以外の参照値 x と y について、x.equals(y) の場合、y.equals(x) も true を返す必要があります。
  • 推移性: null 以外の参照値 x、y、z について、x.equals(y) が true で y.equals(z) が true の場合、x.equals(z) も返される必要があります。真実 。
  • 一貫性: null 以外の参照値 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>

この例では、equal() メソッドは 2 つの Person オブジェクトの名前フィールドと年齢フィールドを比較して、等しいかどうかを判断します。 。

以上がJavaでは等しいとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。