Menjadi salah satu bahasa pengaturcaraan yang paling banyak digunakan, Java dilengkapi dengan pelbagai ciri dan fungsi. Objek dalam Java digunakan untuk menyelesaikan tugas; anda mencipta objek, mengubah, memindahkan, memanggil kaedah masing-masing, dsb. Seperti yang kita sedia maklum, rujukan kepada objek disimpan dalam Java. Jadi, apabila kita mempunyai dua rujukan yang menunjuk pada objek yang sama, perubahan dalam sesiapa sahaja akan dapat dilihat sepenuhnya dalam perubahan yang sama pada yang lain. Sekarang, faktor ini mungkin tidak memihak kepada kita setiap kali, jadi pengklonan adalah jawapan untuk menghalang situasi sedemikian. Dalam erti kata lain, untuk mencipta replika tepat objek sedemikian dikenali sebagai Pengklonan Objek di Jawa.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Menurut definisi, Pengklonan Objek ialah proses mencipta salinan tepat objek asal dengan keadaan yang serupa. Semasa pengklonan, semua sifat dibawa ke hadapan ke objek yang baru diklon, tetapi sifat ini boleh diubah atau dimanipulasi mengikut keperluan. Kaedah klon() perlu ditakrifkan dalam kelas Objek. Pelaksanaan java.lang.Antara muka yang boleh diklon adalah wajib untuk kelas yang kami ingin mengklon objek. Sekiranya gagal melaksanakan antara muka Boleh Diklon, pengecualian akan dibuang. Sekarang mari kita lihat sintaks untuk Pengklonan Objek.
Sintaks:
protected Object clone() throws CloneNotSupportedException
Untuk Objek kelas, operasi pengklonan khusus dilakukan dengan kaedah klon. Kaedah ini akan mencipta pendua tepat kelas dan memulakan semua medan dengan kandungan medan objek. Jika antara muka Cloneable tidak dilaksanakan oleh kelas objek yang disebutkan, ia akan membuang "CloneNotSupportedException". Semua tatasusunan dianggap melaksanakan antara muka Boleh Diklon. Di sini, antara muka Cloneable tidak dilaksanakan pada Objek kelas. Oleh itu, apabila kita memanggil kaedah klon pada objek, ia menimbulkan ralat masa larian.
Mari kita fahami cara kerja kaedah klon() melalui tunjuk cara.
Kod:
class obj_clone implements Cloneable{ int phone_code; String f_name; obj_clone(int phone_code,String f_name){ this.phone_code=phone_code; this.f_name=f_name; } public Object clone()throws CloneNotSupportedException{ return super.clone(); } public static void main(String args[]){ try{ obj_clone s1=new obj_clone(99,"sulaksh"); obj_clone s2=(obj_clone)s1.clone(); System.out.println(s1.phone_code+" "+s1.f_name); System.out.println(s2.phone_code+" "+s2.f_name); }catch(CloneNotSupportedException c){} } }
Penjelasan Kod: Seperti yang anda lihat, kami memulakan kelas kami dan melaksanakan boleh diklon. Di sini, ia diperiksa jika kelas sebenar melaksanakan klon, dengan klon() dalam objek dan kemudian ia meneruskan dengan mencipta salinan. Kemudian kami mempunyai dua nombor telefon pembolehubah kami dengan jenis data integer dan nama pertama dengan jenis data rentetan. Kami kemudian mencipta pembina obj_clone kelas kami bersama-sama dengan pembolehubah dengan kata kunci .ini. Seperti yang anda lihat, kami mempunyai objek kami dengan kaedah clone() dan pengecualian CloneNotSupportedException, yang kami bincangkan sebelum ini. Selain itu, super.clone() di sini mungkin akan membuang ralat CloneNotSupportedException, yang telah kami tangkap kemudian.
Kemudian kami mempunyai kelas utama kami, dan kami telah menggunakan tangkapan cuba untuk semua yang ada di dalamnya. Kami kemudian mencipta objek kelas kami sebagai s1 dan s2. Kami telah melepasi kedua-dua parameter untuk s1, objek pertama kami, dan kemudian kami telah melaksanakan kaedah klon() untuk mengklon s1 ke s2. Akhir sekali, kami mempunyai dua kenyataan cetakan keluaran. Daripada blok percubaan, kami mempunyai blok tangkapan kami dengan pengecualian yang dibincangkan sebelum ini. Pada baris 8th contoh, kami telah melaksanakan klon() seperti yang disebutkan dan dijelaskan dalam bahagian sintaks. Selepas pelaksanaan, program di atas akan mencetak output sebagai "99sulaksh 99sulaksh". Untuk output rujuk tangkapan skrin yang dilampirkan di bawah.
Output:
Sekarang kita telah memahami apa itu pengklonan objek dan bagaimana ia dilakukan, mari kita fahami jenis pengklonan yang mana Java menyokong.
Sekarang, mari kita fahami kebaikan dan keburukan Pengklonan Objek.
Memahami bahawa segala sesuatu atau setiap kaedah mempunyai batasan dan fungsi tersendiri, di bawah adalah kelebihan Pengklonan.
Seperti yang dinyatakan sebelum ini, setiap kaedah mempunyai had dan fungsinya, kini mari kita fahami Kelemahan dengan Klon().
Dengan pemahaman yang betul tentang kelebihan dan kekurangan clone() atau mana-mana kaedah lain, pelaksanaan kaedah dan fungsi yang hebat itu boleh memberi manfaat besar kepada pengaturcara.
Kami faham apa itu clone(), fungsinya dan kegunaannya. Perbezaan antara pengklonan dalam dan cetek, bersama-sama dengan pengklonan malas. Pengklonan cetek hanya menyalin medan manakala Pengklonan Dalam menyalin medan dan nilai dan boleh dilaksanakan mengikut keperluan. Manakala Lazy Copy adalah gabungan kedua-duanya. Kami juga memahami kelebihan dan kekurangan klon ().
Atas ialah kandungan terperinci Pengklonan Objek di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!