Rumah >Java >javaTutorial >Apakah kaedah java equals?
Kaedah java equals ialah kaedah dalam kelas objek dan hanya boleh digunakan untuk menentukan jenis rujukan; kaedah equals secara lalai menentukan sama ada alamat adalah sama kandungannya adalah sama. Sintaks penggunaannya adalah seperti "public boolean equals(Object obj) {return (this == obj);}".
Persekitaran pengendalian tutorial ini: sistem Windows 10, java8, komputer Dell G3.
sama dengan kaedah dalam Java
"==" ialah a operator perbandingan.
Kod sumber kaedah sama dalam kelas Objek:
Kaedah sama dalam kelas Objek lalai untuk membandingkan sama ada alamat objek adalah sama.
public boolean equals(Object obj) { return (this == obj); }
"hello".equals("abc");
Penjelasan: ini merujuk kepada objek semasa, ini merujuk kepada siapa yang memanggil kaedah equals, dan hello di atas adalah sama, jadi ini merujuk kepada rentetan hello, dan == The obj objek di sebelah kanan ialah abc yang masuk.
Latihan 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; } }
Petua:
Penggunaan instanceof: result = object instanceof class
Instanceof mempunyai objek di sebelah kiri dan kelas di sebelah kanan apabila objek adalah objek yang dicipta oleh kelas atau subkelas di sebelah kanan, benar dikembalikan;
Latihan 2:
Penerangan:
- sout1: p1 dan p2 ialah kedua-dua objek, jadi == menentukan sama ada alamat adalah sama, palsu
- sout2: p1.name dan p2.name ialah kedua-dua rentetan, jadi equals di sini memanggil equals dalam kaedah kelas String, ia menentukan sama ada kandungan adalah sama, benar
- sout3: p1 dan p2 ialah kedua-dua objek, jadi yang sama di sini ialah kaedah sama dalam kelas Objek, dan ia menentukan sama ada alamatnya sama, palsu
- sout4: s1 dan s2 ialah kedua-dua objek kelas String, jadi persamaan di sini memanggil kaedah sama dalam kelas String untuk menentukan sama ada kandungannya sama, benar
- sout5: s1 dan s2 ialah kedua-dua objek , jadi == menentukan sama ada alamat adalah sama, palsu
Latihan 3:
Penjelasan:
- sout1: 65 dan 65.0 adalah sama, benar
- sout2: Intipati aksara masih nombor, A adalah 12 , benar
- sout3: tiada apa yang perlu dikatakan
- sout4: tiada apa yang perlu dikatakan
- sout5: tiada untuk dikatakan
- sout6: bukan jenis yang sama, == ralat kompilasi langsung
Cadangan berkaitan: "Tutorial Video Java"
Atas ialah kandungan terperinci Apakah kaedah java equals?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!