Apa perbedaan antara Mutable dan Immutable In Java?



Artikel tentang Mutable and Immutable in Java ini adalah panduan komprehensif tentang perbedaan di antara keduanya dan juga membahas mengapa string java tidak dapat diubah.

Java menjadi salah satu yang paling populer menyediakan berbagai konsep untuk membuat aplikasi, dan salah satu konsep tersebut adalah Mutable And Immutable in Java. Nah, konsep ini bergantung pada membuat perubahan pada bidang setelah pembuatan objek dan dengan demikian memudahkan pemrograman . Jadi, dalam artikel tentang mutable dan immutable di Java ini, saya akan membahas topik-topik berikut:

Apa itu objek Mutable?





Objek di mana Anda bisa mengubah bidang dan status setelah objek dibuat dikenal sebagai Objek yang bisa berubah. Contoh : java.util.Date, StringBuilder, dan lain-lain

Apa itu objek yang tidak bisa diubah?



Itu benda di mana Anda tidak dapat mengubah apa pun setelah objek dibuat dikenal sebagai objek yang tidak dapat diubah. Contoh : Objek primitif dalam kotak seperti Integer, Long, dll.

Jadi, sekarang Anda tahu apa yang bisa berubah dan tidak bisa diubah di java, mari kita lanjutkan dan lihat perbedaan antara keduanya.

Perbedaan Antara Objek Yang Dapat Diubah dan Yang Tidak Dapat Diubah



Anda dapat merujuk ke tabel berikut untuk mengetahui perbedaan antara objek yang bisa berubah dan objek yang tidak bisa diubah di Java.

c ++ goto line
Yg mungkin berubah Kekal
Bidang dapat diubah setelah pembuatan objekBidang tidak dapat diubah setelah pembuatan objek
Umumnya menyediakan metode untuk mengubah nilai bidangTidak memiliki metode apa pun untuk mengubah nilai bidang
Memiliki metode Getter dan SetterHanya memiliki metode Getter
Contoh: StringBuilder, java.util.DateContoh: String, objek primitif berkotak seperti Integer, Long dan lain-lain

Sekarang setelah Anda mengetahui perbedaan antara objek yang bisa berubah dan objek yang tidak bisa diubah, mari kita lihat cara membuatnya kelas.

Bagaimana cara membuat kelas yang bisa diubah?

Untuk membuat kelas yang bisa berubah di Java, Anda harus memastikan persyaratan berikut terpenuhi:

  1. Berikan metode untuk mengubah nilai bidang
  2. Metode pengambil dan penyetel

Perhatikan kode berikut:

paket edureka public class contoh {private String coursename contoh (String nama kursus) {this.coursename = coursename} public String getName () {return coursename} public void setName (String nama kursus) {this.coursename = coursename} public static void main (String [] args) {contoh obj = contoh baru ('Pembelajaran Mesin') System.out.println (obj.getName ()) // perbarui nama, objek ini dapat diubah menjadi obj.setName ('Machine Learning Masters') Sistem. out.println (obj.getName ())}}

Anda akan melihat output berikut:

Output Objek yang Dapat Diubah - Dapat Diubah dan Tidak Dapat Diubah di Java- Edureka

Jadi sekarang setelah Anda tahu cara membuat kelas yang bisa berubah, selanjutnya di artikel ini, mari kita lihat cara membuat kelas yang tidak bisa diubah.

Bagaimana cara membuat kelas Immutable?

perbedaan antara metode overloading dan overriding di java

Untuk membuat kelas yang tidak dapat diubah di Java, Anda harus memastikan persyaratan berikut terpenuhi:

  1. Kelas A harus dideklarasikan sebagai terakhir sehingga tidak bisa diperpanjang.
  2. Semua bidang harus dijadikan pribadi sehingga akses langsung tidak diperbolehkan
  3. Tidak ada metode penyetel
  4. Buat semua bidang yang bisa berubah jadi final, sehingga bisa ditetapkan hanya sekali.
paket edureka public class exampleimmutable {private string akhir coursename exampleimmutable (string akhir nama coursename) {this.coursename = coursename} public akhir String getName () {return coursename} public static void main (String [] args) {contoh obj = contoh baru ( 'Pembelajaran Mesin') System.out.println (obj.getName ())}}

Anda akan melihat output di bawah ini:

Baiklah, jadi sekarang Anda telah mengetahui tentang objek yang bisa berubah dan objek yang tidak bisa diubah, izinkan saya memberi tahu Anda bahwa Strings tidak bisa diubah di Java. Sekarang, saya yakin ini mungkin menimbulkan pertanyaan, tentang mengapa string tidak dapat diubah di Jawa. Jadi, selanjutnya di artikel ini, mari kita lihat hal yang sama.

c ++ cara menggunakan namespace

Mengapa Strings Tidak Dapat Diubah di Java?

Java menggunakan konsep . Jadi, jika Anda mempertimbangkan contoh di mana Anda memiliki banyak variabel referensi yang merujuk pada satu objek, bahkan jika satu variabel referensi mengubah nilai dari obyek , secara otomatis semua variabel referensi lainnya akan terpengaruh. Juga menurut Java yang efektif ,chapter 4, halaman 73, edisi ke-2, berikut ini adalah alasan untuk menggunakan kelas Immutable:

  • Objek yang tidak bisa diubah itu sederhana
  • Objek ini tidak memerlukan sinkronisasi dan secara inheren aman untuk thread
  • Objek yang tidak bisa diubah menjadi bahan penyusun yang baik untuk objek lainnya

Jika saya harus menjelaskan kepada Anda dengan sebuah contoh, maka,

Misalkan Anda memiliki variabel samplestring , yang menyimpan string ' Pembelajaran mesin “. Sekarang, jika Anda menggabungkan string ini dengan string lain ' Master ', lalu objek dibuat untuk ' Pembelajaran mesin 'Tidak akan berubah. Sebaliknya, objek baru akan dibuat untuk ' Master Pembelajaran Mesin “. Lihat gambar di bawah ini:

Seperti yang Anda lihat pada gambar di atas, file samplestring variabel referensi merujuk ke 'Machine Learning', tetapi bukan string lainnya, bahkan setelah dua objek dibuat. Dengan ini, kami mengakhiri artikel tentang Mutable and Immutable in Java ini. Saya harap kalian jelas tentang setiap aspek yang telah saya bahas di atas.

Sekarang Anda telah memahami dasar-dasar Java, lihat oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Kursus pelatihan dan sertifikasi Java J2EE dan SOA Edureka dirancang untuk siswa dan profesional yang ingin menjadi Pengembang Java. Kursus ini dirancang untuk memberi Anda permulaan dalam pemrograman Java dan melatih Anda untuk konsep Java inti dan lanjutan bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar di blog 'Dapat Berubah dan Tidak Dapat Diubah di Java' dan kami akan menghubungi Anda kembali secepatnya.