Apakah perbezaan antara Mutable dan Immutable Di Java?



Artikel ini mengenai Mutable and Immutable in Java adalah panduan komprehensif untuk perbezaan di antara mereka dan juga membincangkan mengapa string java tidak berubah.

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?





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 objekMedan tidak dapat diubah setelah pembuatan objek
Secara amnya menyediakan kaedah untuk mengubah nilai medanTidak mempunyai kaedah untuk mengubah nilai medan
Mempunyai kaedah Getter dan SetterHanya mempunyai kaedah Getter
Contoh: StringBuilder, java.util.DateContoh: 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:

  1. Berikan kaedah untuk mengubah nilai medan
  2. 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

Output Objek Mutable - Boleh Diubah dan Tidak Berubah di Java- Edureka

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:

  1. Kelas harus dinyatakan sebagai akhir sehingga tidak dapat dilanjutkan.
  2. Semua bidang harus dibuat peribadi supaya akses langsung tidak dibenarkan
  3. Tiada kaedah setter
  4. 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.