Cara mencipta objek data tidak berubah menggunakan kelas Rekod dalam Java 14
Pengenalan:
Dalam proses pembangunan perisian, objek data adalah sangat penting. Untuk memastikan keselamatan dan ketekalan data, objek data biasanya perlu direka bentuk agar tidak berubah. Di Java, kita boleh menggunakan kelas Rekod untuk mencipta objek data yang tidak boleh diubah. Artikel ini akan memperkenalkan cara menggunakan kelas Rekod untuk mencipta objek data tidak berubah dalam Java 14 dan menyediakan contoh kod yang sepadan.
- Apakah itu kelas Rekod?
Kelas Rekod ialah ciri baharu dalam Java 14 yang menyediakan cara yang lebih bersih dan mudah untuk mencipta objek data yang tidak boleh diubah. Kelas Rekod secara automatik menjana beberapa kaedah, termasuk kaedah pembinaan, kaedah sama, kaedah hashCode dan kaedah toString. Pelaksanaan kaedah ini dijana secara automatik berdasarkan sifat kelas, jadi kita tidak perlu menulis kod yang membosankan ini secara manual.
- Bagaimana untuk menentukan kelas Rekod?
Mentakrifkan kelas Rekod adalah sangat mudah, hanya gunakan kata kunci rekod serta nama kelas dan atribut. Sebagai contoh, berikut ialah contoh kelas Orang yang mudah: record
加上类名和属性即可。例如,下面是一个简单的Person类的示例:
record Person(String name, int age) {}
上述代码定义了一个名为Person的Records类,它有两个属性,分别是name和age。Records类是不可变的,所以我们无法在创建对象之后修改它们。
- 如何使用Records类?
使用Records类非常方便,可以像使用普通类一样来创建对象、访问属性和调用方法。例如,我们可以这样创建一个Person对象:
Person person = new Person("Alice", 25);
我们也可以像访问普通类的属性一样访问Records类的属性:
String name = person.name();
int age = person.age();
值得注意的是,Records类自动生成了一个toString()
方法,所以我们可以直接调用toString()
方法来获取对象的字符串表示:
System.out.println(person); // 输出:Person[name=Alice, age=25]
- Records类的优点
使用Records类有以下几个优点:
4.1 简洁性:相比传统的类定义方式,Records类更加简洁,省去了繁琐的代码编写。
4.2 不可变性:Records类中的属性是final的,它们在创建之后就无法修改,保证了数据对象的不可变性。
4.3 自动生成方法:Records类自动为我们生成了一些常用的方法,比如equals、hashCode和toString等,不需要我们手动编写这些方法。
4.4 易于读写:Records类定义清晰,属性可通过简单的访问方法获取,使得代码易于理解和维护。
- Records类的限制
但是,Records类也有一些限制:
5.1 属性必须是final的:Records类中的属性必须声明为final的,这是为了确保数据对象的不可变性。
5.2 不能显式定义构造方法:Records类的构造方法是隐式生成的,所以我们不能显式定义构造方法。
5.3 不能继承其他类:Records类不能继承其他类,但可以实现接口。
5.4 属性不能使用访问修饰符:Records类中的属性默认是public的,无法使用其他访问修饰符。
- 总结
在Java 14中,Records类为我们创建不可变数据对象提供了更加简洁和方便的方式。我们只需要使用record
rrreee
Kod di atas mentakrifkan kelas Rekod bernama Orang, yang mempunyai dua atribut, nama dan umur. Kelas Rekod tidak boleh diubah, jadi kami tidak boleh mengubah suai objek selepas ia dibuat. 🎜
🎜Bagaimana untuk menggunakan kelas Rekod? 🎜Sangat mudah untuk menggunakan kelas Rekod Anda boleh mencipta objek, mengakses sifat dan kaedah panggilan sama seperti menggunakan kelas biasa. Sebagai contoh, kita boleh mencipta objek Orang seperti ini:🎜🎜rrreee🎜Kami juga boleh mengakses atribut kelas Rekod sama seperti mengakses atribut kelas biasa:🎜rrreee🎜Perlu diperhatikan bahawa kelas Rekod secara automatik menjana toString() kaedah, jadi kita boleh terus memanggil kaedah toString()
untuk mendapatkan perwakilan rentetan objek: 🎜rrreee🎜Kelebihan kelas Rekod🎜Menggunakan kelas Rekod mempunyai kelebihan berikut: 🎜🎜🎜4.1 Kesederhanaan: Berbanding dengan kaedah definisi kelas tradisional, kelas Rekod adalah lebih ringkas, menghilangkan keperluan untuk menulis kod yang membosankan. 🎜🎜4.2 Ketidakbolehubahan: Sifat dalam kelas Rekod adalah muktamad dan tidak boleh diubah suai selepas ia dicipta, memastikan ketidakbolehubah objek data. 🎜🎜4.3 Kaedah yang dijana secara automatik: Kelas Rekod secara automatik menjana beberapa kaedah yang biasa digunakan untuk kami, seperti equals, hashCode dan toString, dsb., tanpa perlu kami menulis kaedah ini secara manual. 🎜🎜4.4 Mudah dibaca dan ditulis: Kelas Rekod ditakrifkan dengan jelas, dan sifat boleh diperolehi melalui kaedah akses mudah, menjadikan kod itu mudah difahami dan diselenggara. 🎜🎜Sekatan kelas Rekod🎜Walau bagaimanapun, kelas Rekod juga mempunyai beberapa sekatan: 🎜🎜🎜5.1 Hartanah mestilah muktamad: Hartanah dalam kelas Rekod mesti diisytiharkan muktamad, ini adalah untuk memastikan bahawa objek data yang tidak boleh berubah. 🎜🎜5.2 Pembina tidak boleh ditakrifkan secara eksplisit: Pembina kelas Rekod dijana secara tersirat, jadi kami tidak boleh mentakrifkan pembina secara eksplisit. 🎜🎜5.3 Tidak boleh mewarisi kelas lain: Kelas Rekod tidak boleh mewarisi kelas lain, tetapi ia boleh melaksanakan antara muka. 🎜🎜5.4 Pengubah suai akses tidak boleh digunakan untuk sifat: Sifat dalam kelas Rekod adalah awam secara lalai dan pengubah suai akses lain tidak boleh digunakan. 🎜🎜Ringkasan🎜Dalam Java 14, kelas Records menyediakan cara yang lebih ringkas dan mudah untuk kami mencipta objek data yang tidak boleh diubah. Kami hanya perlu mentakrifkan kelas Rekod menggunakan kata kunci rekod
dan mengisytiharkan sifat, dan kerja selebihnya dijana secara automatik oleh kelas Rekod. Menggunakan kelas Rekod boleh meningkatkan kebolehbacaan dan kebolehselenggaraan kod anda. Walau bagaimanapun, kita juga perlu memberi perhatian kepada beberapa sekatan kelas Rekod, seperti sifat mestilah muktamad, pembina tidak boleh ditakrifkan secara eksplisit, dsb. Saya harap artikel ini dapat membantu anda memahami dan menggunakan kelas Rekod dalam Java 14. 🎜🎜
Atas ialah kandungan terperinci Cara menggunakan kelas Rekod dalam Java 14 untuk mencipta objek data tidak boleh diubah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!