Objek boleh ubah mempunyai medan yang boleh diubah suai; objek tidak berubah tidak mempunyai medan yang boleh diubah selepas objek dicipta. Objek tidak berubah ialah objek yang keadaannya tidak boleh berubah selepas ia dicipta. Mutable dan Immutable ialah dua kategori objek dalam java. Dalam artikel ini, kita akan melihat perbezaan antara objek boleh ubah dan tidak boleh ubah dalam java. Selain itu, kita akan melihat contoh kod java yang menunjukkan perbezaan antara kelas boleh ubah dan tidak boleh ubah dalam java.
IKLAN Kursus Popular dalam kategori ini JAVA MASTERY - Pengkhususan | 78 Siri Kursus | 15 Ujian Olok-olokDi bawah ialah 6 perbezaan teratas antara Mutable vs Immutable Java:
Berikut ialah perbezaan utama antara objek boleh ubah dan tidak boleh ubah dalam Java:
Mari kita bincangkan perbandingan teratas antara Mutable vs Immutable Java:
Mutable
|
Tidak boleh diubah |
||||||||||||||
Objek Java Mutable boleh diubah suai selepas penciptaannya. | Objek Java Immutable tidak boleh diubah suai selepas penciptaannya. | ||||||||||||||
Tiada objek baharu terbentuk apabila perubahan dibuat pada objek sedia ada. | Setiap kali objek sedia ada ditukar, objek baharu terbentuk. | ||||||||||||||
Ia menyediakan kaedah untuk menukar kandungan objek. | Ia tidak menyediakan kaedah untuk menukar kandungan objek. | ||||||||||||||
Kaedah getter dan setter hadir dalam kelas boleh ubah. | Hanya kaedah pengambil yang ada dan bukan kaedah penetap. | ||||||||||||||
Kelas boleh ubah mungkin atau mungkin tidak selamat untuk benang. | Kelas tidak boleh diubah adalah selamat untuk benang secara lalai. | ||||||||||||||
Beberapa contoh biasa kelas boleh ubah dalam java ialah StringBuffer, StringBuilder dan java.util.Date. | Semua kelas Legacy, kelas Wrapper, kelas String, ialah contoh biasa kelas Immutable dalam java. |
Java Boleh Ubah dan Tidak Boleh Ubah dengan Contoh diberikan di bawah:
Kini kita akan melihat contoh kod java yang menunjukkan penciptaan kelas boleh ubah dan tidak boleh ubah dalam java.
Kod:
package com.edubca.mutabledemo; public class MutableDemo { private String studentName; private int rollNumber; MutableDemo (String studentName, int rollNumber) { this.studentName = studentName; this.rollNumber = rollNumber; } public String getStudentName() { return studentName; } // this setter can modify the name public void setStudentName(String studentName) { this.studentName = studentName; } public int getRollNumber() { return rollNumber; } // this setter can modify roll number public void setRollNumber(int rollNumber) { this.rollNumber = rollNumber; } public static void main(String[] args) { MutableDemo obj = new MutableDemo ("John" , 100); System.out.println("Original Name is " + obj.getStudentName()); System.out.println("Original Roll Number is " + obj.getRollNumber()); // update the name, and roll number as is mutable obj.setStudentName("James"); obj.setRollNumber(102); System.out.println("Modified Name is " + obj.getStudentName()); System.out.println("Modified Roll Number is " + obj.getRollNumber()); } }
Output:
Kod di atas menunjukkan penciptaan kelas boleh ubah dalam java dengan getter dan setter.
Sekarang kita akan melihat bagaimana kita boleh mencipta kelas tidak berubah dalam Java.
Kod:
package com.edubca.immutabledemo; public final class ImmutableDemo { final String studentName; final int rollNumber; public ImmutableDemo (String studentName, int rollNumber) { this.studentName = studentName; this.rollNumber = rollNumber; } public String getStudentName() { return studentName; } public int getRollNumber() { return rollNumber; } public static void main(String[] args) { ImmutableDemo obj = new ImmutableDemo ("John" , 100); // Since no getters are available contents cannot be modified. // Also as variables are declared final they cannot be modified System.out.println("Name is " + obj.getStudentName()); System.out.println("Roll Number is " + obj.getRollNumber()); } }
Output:
Kod di atas menunjukkan penciptaan kelas immutable java. Perkara berikut perlu diingat semasa membuat kelas tidak berubah:
Daripada perbincangan di atas, kami memahami dengan jelas perbezaan antara boleh ubah dan tidak berubah dalam java. Selain itu, kami telah melihat contoh java yang menunjukkan cara kelas boleh ubah dan tidak berubah dicipta. Adalah penting untuk ambil perhatian bahawa kelas yang tidak boleh diubah adalah selamat untuk benang lalai, manakala kelas yang boleh diubah mungkin atau mungkin tidak selamat untuk benang.
Atas ialah kandungan terperinci Boleh Berubah vs Java Tidak Boleh Berubah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!