Java menjadi salah satu yang paling popular menyediakan pelbagai konsep untuk membuat aplikasi, dan satu konsep tersebut adalah Mutable And Immutable di Java. Nah, konsep ini bergantung pada membuat perubahan pada bidang setelah penciptaan objek dan dengan demikian memudahkan pengaturcaraan untuk . Jadi, dalam artikel ini mengenai perubahan dan tidak berubah di Java, saya akan membincangkan topik berikut:
- Apakah objek Mutable?
- Apakah objek yang tidak berubah?
- Perbezaan Antara Objek Yang Boleh Diubah dan Tidak Berubah
- Bagaimana membuat kelas Mutable?
- Bagaimana untuk membuat kelas yang tidak berubah?
- Mengapa String Tidak Boleh Diubah di Jawa?
Apakah objek Mutable?
Objek di mana anda boleh menukar medan dan keadaan setelah objek dibuat dikenali sebagai objek Mutable. Contohnya : java.util.Date, StringBuilder, dan lain-lain
Apakah objek yang tidak berubah?
The benda di mana anda tidak dapat mengubah apa-apa setelah objek dibuat dikenali sebagai objek tidak berubah. Contohnya : Objek primitif berkotak seperti Integer, Long dan lain-lain.
Oleh itu, setelah anda mengetahui apa yang boleh berubah dan tidak berubah dalam java, mari kita bergerak maju dan melihat perbezaan antara keduanya.
system.exit (0)
Perbezaan Antara Objek Yang Boleh Diubah dan Tidak Berubah
Anda boleh merujuk kepada jadual berikut untuk perbezaan antara objek yang boleh berubah dan tidak berubah di Java.
Boleh diubah | Tidak boleh berubah |
Medan boleh diubah setelah penciptaan objek | Medan tidak dapat diubah setelah pembuatan objek |
Secara amnya menyediakan kaedah untuk mengubah nilai medan | Tidak mempunyai kaedah untuk mengubah nilai medan |
Mempunyai kaedah Getter dan Setter | Hanya mempunyai kaedah Getter |
Contoh: StringBuilder, java.util.Date | Contoh: String, objek primitif berkotak seperti Integer, Long dan lain-lain |
Sekarang setelah anda mengetahui perbezaan antara objek yang boleh berubah dan tidak berubah, marilah kita melihat bagaimana membuatnya kelas.
Bagaimana membuat kelas Mutable?
Untuk membuat kelas yang dapat diubah di Java, anda harus memastikan syarat berikut dipenuhi:
- Berikan kaedah untuk mengubah nilai medan
- Kaedah Getter dan Setter
Pertimbangkan kod berikut:
pakej edureka contoh kelas umum {private String coursename example (String coursename) {this.coursename = coursename} public String getName () {return coursename} public void setName (String coursename) {this.coursename = coursename} awam statik batal utama (String [] args) {contoh obj = contoh baru ('Pembelajaran Mesin') System.out.println (obj.getName ()) // kemas kini nama, objek ini boleh berubah sistem obj.setName ('Machine Learning Masters'). out.println (obj.getName ())}}
Anda akan melihat output berikut:
apa itu tukang masak dan boneka
Oleh itu, setelah anda mengetahui bagaimana membuat kelas yang dapat diubah, seterusnya dalam artikel ini, mari kita lihat bagaimana membuat kelas yang tidak berubah.
Bagaimana untuk membuat kelas yang tidak berubah?
Untuk membuat kelas yang tidak berubah di Java, anda harus memastikan syarat berikut dipenuhi:
- Kelas harus dinyatakan sebagai akhir sehingga tidak dapat dilanjutkan.
- Semua bidang harus dibuat peribadi supaya akses langsung tidak dibenarkan
- Tiada kaedah setter
- Jadikan semua medan yang dapat diubah menjadi akhir, sehingga mereka dapat ditugaskan sekali sahaja.
pakej edureka public class exampleimmutable {private final String coursename exampleimmutable (final String coursename) {this.coursename = coursename} public final String getName () {return coursename} public static void main (String [] args) {contoh obj = contoh baru ( 'Machine Learning') System.out.println (obj.getName ())}}
Anda akan melihat output di bawah:
Baiklah, jadi sekarang anda tahu tentang objek yang boleh berubah dan tidak berubah, izinkan saya memberitahu anda bahawa String tidak dapat diubah di Java. Sekarang, saya yakin ini mungkin menimbulkan persoalan, mengapa rentetan tidak dapat diubah di Jawa. Oleh itu, seterusnya dalam artikel ini, mari kita lihat yang sama.
Mengapa String Tidak Boleh Diubah di Jawa?
Java menggunakan konsep . Oleh itu, jika anda mempertimbangkan satu contoh di mana anda mempunyai banyak pemboleh ubah rujukan yang merujuk pada satu objek, maka walaupun satu pemboleh ubah rujukan mengubah nilai objek , secara automatik semua pemboleh ubah rujukan lain akan terjejas. Juga, menurut Java yang berkesan ,bab 4, halaman 73, edisi ke-2, berikut adalah alasan untuk menggunakan kelas yang tidak berubah:
- Objek tidak berubah adalah sederhana
- Objek-objek ini tidak memerlukan penyegerakan dan sememangnya selamat untuk utas
- Objek yang tidak berubah menjadikan blok bangunan yang baik untuk objek lain
Sekiranya saya perlu menerangkan anda dengan contoh, maka,
Katakan anda mempunyai pemboleh ubah persampelan , yang menyimpan rentetan ' Pembelajaran Mesin '. Sekarang, jika anda menggabungkan rentetan ini dengan rentetan lain ' Tuan ', maka objek yang dibuat untuk “ Pembelajaran Mesin 'Tidak akan berubah. Sebaliknya, objek baru akan dibuat untuk “ Sarjana Pembelajaran Mesin '. Rujuk gambar di bawah:
apakah perbezaan antara hashtable dan hashmap
Seperti yang anda lihat dalam gambar di atas, persampelan pemboleh ubah rujukan merujuk kepada 'Pembelajaran Mesin', tetapi bukan rentetan lain, bahkan setelah penciptaan dua objek. Dengan ini, kita mengakhiri artikel ini tentang Mutable and Immutable di Java. Saya harap anda semua jelas mengenai setiap aspek yang telah saya bincangkan di atas.
Sekarang setelah anda memahami asas-asas Java, lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kursus latihan dan pensijilan Java J2EE dan SOA Edureka dirancang untuk pelajar dan profesional yang ingin menjadi Pembangun Java. Kursus ini dirancang untuk memberi Anda awal dalam pengaturcaraan Java dan melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.
Ada soalan untuk kami? Sila sebutkan di bahagian komen blog “Mutable and Immutable in Java” ini dan kami akan menghubungi anda secepat mungkin.