Rumah  >  Artikel  >  Java  >  Ringkasan mata pengetahuan kelas Objek di Jawa

Ringkasan mata pengetahuan kelas Objek di Jawa

WBOY
WBOYke hadapan
2022-06-16 11:57:431408semak imbas

Artikel ini membawakan anda pengetahuan yang berkaitan tentang java, yang terutamanya memperkenalkan isu berkaitan tentang kelas Objek, termasuk apakah kelas Objek, kaedah sama dan kaedah kod cincang dalam kelas Objek Mari kita lihat kandungan di bawah, semoga bermanfaat kepada semua.

Ringkasan mata pengetahuan kelas Objek di Jawa

Pembelajaran yang disyorkan: "tutorial video java"

Apakah itu kelas Objek?

Objek ialah kelas khas dalam perpustakaan kelas Java dan kelas induk bagi semua kelas.

Dalam erti kata lain, Java membenarkan sebarang jenis objek ditetapkan kepada pembolehubah jenis Objek.

Kecuali kelas Object, semua kelas dalam Java mempunyai hubungan warisan.

Kelas Objek terletak dalam pakej java.lang dan akan diimport secara automatik semasa penyusunan apabila kelas ditakrifkan, jika kelas induk yang diwarisi tidak ditentukan, kelas induk lalai ialah kelas Objek.

class Person {}
class Student {}
public class Test03 {
    public static void func(Object o) {  }

    public static void main(String[] args) {
        func(new Person());
        func(new Student());
    }
    public static void main1(String[] args) {
        Object o = new Person();
        Object o2 = new Student();
    }
}

Mari kita lihat kaedah dalam kelas Objek

Artikel ini secara ringkas akan memperkenalkan hashCode(), equals()

2 Kaedah equals dalam kelas Object

Lihat bahagian ini kod di bawah

class Person {
    public String dz;
    public Person(String dz) {
        this.dz = dz;
    }
    @Override
    public String toString() {
        return "Person{" +
                "dz='" + dz + '\'' +
                '}';
    }
}
class Student {

}
public class Test03 {

    public static void main(String[] args) {
        Person person = new Person("beijing");
        Person person1 = new Person("beijing");
        System.out.println(person == person1);
}

Jika anda bandingkan terus seperti ini untuk melihat sama ada alamatnya sama, false akan keluar dan outputnya salah

Jadi kalau nak bandingkan, adakah apa-apa cara?

Kaedah yang disediakan dalam java adalah sama, yang boleh digunakan untuk membandingkan sama ada dua objek adalah sama

   System.out.println(person.equals(person1));

Jika anda menulis ini terus dalam utama, palsu masih akan dikeluarkan,

Ini kerana tiada yang sama secara peribadi, dan lalai diwarisi daripada Object

Anda boleh lihat bahawa perbandingan di dalamnya masih ini dan obj, yang merupakan parameter yang diluluskan pada masa ini, begitu juga palsu.

Jadi bagaimana untuk menggunakan equals untuk perbandingan

Maka kita perlu menulis semula equals sebelum kita boleh membandingkan

    @Override
    public boolean equals(Object obj) {
        //判断当前obj参数是否为null
        if (obj == null) {
            return false;
        }
        if (this == obj) {
            return true;
        }
        //不是Person类对象
        if (!(obj instanceof Person)) {
            return false;
        }
        Person ret = (Person) obj;
        return this.dz.equals(ret.dz);
    }

Kita boleh String Help menulis semula sama dengan

Pada masa ini equals boleh membandingkan

Bandingkan objek Apabila kandungan adalah sama, anda perlu menulis semula sama dengan


3 Kaedah hashCode dalam kelas Object

menggunakan hashCode untuk mengira kedudukan objek tertentu, iaitu ialah alamat Memori, dan kemudian panggil kaedah Integer.toHexString() untuk mengeluarkan alamat ini dalam perenambelasan

,

dua dz adalah sama, kemudian Gunakan hashCode secara langsung untuk mengira alamat memori, dan kemudian kod mendapati bahawa alamat memori adalah berbeza

Ini bermakna bahawa penambahan terus hashCode seperti ini tidak mungkin, maka anda perlu melaksanakan semula hashCode,

Mari tulis semula Kod cincang,

    @Override
    public int hashCode() {
        return Objects.hash(dz);
    }

dan kemudian cuba jalankan kod itu. Sudah tentu, selepas menulis semula, alamat memori adalah sama

Ini ialah sama yang dijana dan Kod cincang

Pembelajaran yang disyorkan: "

video java tutorial

"

Atas ialah kandungan terperinci Ringkasan mata pengetahuan kelas Objek di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam