Rumah >Java >javaTutorial >Apakah Perbezaan Antara `==` dan `.equals()` Apabila Membandingkan Objek dalam Java?

Apakah Perbezaan Antara `==` dan `.equals()` Apabila Membandingkan Objek dalam Java?

Patricia Arquette
Patricia Arquetteasal
2024-12-26 11:19:09282semak imbas

What's the Difference Between `==` and `.equals()` When Comparing Objects in Java?

Membandingkan Objek dengan == Operator dan Kaedah .equals()

Dalam pengaturcaraan berorientasikan objek, membandingkan objek adalah penting. Artikel ini meneroka penggunaan dua kaedah perbandingan: == operator dan .equals().

== Operator

Operator == membandingkan rujukan objek. Ia menyemak sama ada dua objek adalah contoh yang sama, bukan hanya objek setara dengan kandungan yang sama. Dalam contoh kod yang disediakan, object1 dan object2 ialah kejadian yang berbeza, jadi object1 == object2 mengembalikan palsu.

.equals() Method

Sebaliknya, .equals () kaedah digunakan untuk membandingkan kandungan objek. Ia biasanya menyemak sama ada objek mempunyai sifat atau atribut yang sama. Dalam kod contoh, .equals() menyemak sama ada medan objek1 sama dengan medan objek2. Walau bagaimanapun, pelaksanaan equals() tersuai anda tidak betul kerana ia membandingkan objek itu sendiri dan bukannya membandingkan medan a mereka. Ini mengakibatkan palsu dikembalikan walaupun medan a adalah sama.

Pelaksanaan Betul Kaedah .equals()

Untuk membandingkan medan a dengan betul, anda boleh menggunakan pelaksanaan berikut:

public boolean equals(Object object2) {
    if (object2 instanceof MyClass) {
        MyClass other = (MyClass) object2;
        return a.equals(other.a);
    }
    return false;
}

Pelaksanaan ini menyemak sama ada object2 ialah contoh MyClass dan kemudian menghantarnya sewajarnya. Ia kemudian membandingkan medan a bagi dua objek.

Kesimpulan

Operator == membandingkan rujukan objek, manakala kaedah .equals() membandingkan kandungan objek. Penggunaan kedua-dua kaedah yang betul memastikan perbandingan yang tepat untuk keperluan khusus anda.

Atas ialah kandungan terperinci Apakah Perbezaan Antara `==` dan `.equals()` Apabila Membandingkan Objek dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn