Bagaimanakah saya menyalin Objek dalam Java

Bagaimanakah Saya Menyalin Objek Dalam Java



Di Java, penyalinan objek berkuat kuasa apabila terdapat keperluan untuk menggunakan fungsi yang telah dilaksanakan dalam kod dan bukannya menggunakannya semula dari awal. Juga, ia membantu apabila mengemas kini data berdasarkan rekod yang terkandung. Dengan cara ini, ia mengurangkan kerumitan kod dan penggunaan sumber dengan berkesan.

Artikel ini akan menunjukkan pendekatan untuk menyalin objek dalam Java.

Bagaimanakah saya Menyalin Objek dalam Java?

Objek boleh disalin dalam Java menggunakan pendekatan berikut:







Akses semua kelas dalam ' java.util ” pakej sebelum beralih ke contoh:



import java. guna . *;

Pendekatan 1: Menyalin Objek dalam Java Menggunakan 'Copy Constructor'

' Pembina Salin ” mencipta/mentakrifkan objek dengan merujuk kepada objek kelas yang sama yang dibuat sebelum ini.



Contoh
Contoh berikut menggunakan 'Pembina Salin' untuk menyalin objek:





awam kelas CopyObject {
int ID ;
Tali bandar ;
CopyObject ( int ID , Tali bandar ) {
ini . ID = ID ;
ini . bandar = bandar ; }
CopyObject ( Objek CopyObject ) {
ini . ID = objek. ID ;
ini . bandar = objek. bandar ; }
awam batal paparan ( ) {
Sistem. keluar . println ( 'ID ->' + ini . ID ) ;
Sistem. keluar . println ( 'Bandar ->' + ini . bandar ) ; }
awam statik batal utama ( Tali [ ] args ) {
Input pengimbas = baru Pengimbas ( Sistem. dalam ) ;
Sistem. keluar . println ( 'Masukkan id:' ) ;
int ID = input. seterusnyaInt ( ) ;
Sistem. keluar . println ( 'Masuk ke bandar:' ) ;
Tali bandar = input. seterusnya ( ) ;
Objek CopyObject1 = baru CopyObject ( ID , bandar ) ;
Objek CopyObject2 = baru CopyObject ( objek1 ) ;
Sistem. keluar . println ( 'Objek Lalai ->' ) ;
objek1. paparan ( ) ;
Sistem. keluar . println ( 'Objek Disalin ->' ) ;
objek2. paparan ( ) ;
input. dekat ( ) ;
} }

Dalam coretan kod di atas:

  • Buat kelas bernama “ CopyObject ”.
  • Nyatakan pembolehubah ahli kelas yang dinyatakan.
  • Selepas itu, buat pembina kelas berparameter yang memperuntukkan nilai yang diluluskan kepada pembolehubah yang ditentukan melalui ' ini ”.
  • Sekarang, buat ' Pembina Salin ” yang mengambil objek jenis kelas yang telah dibuat sebagai parameternya yang akan diluluskan sebagai hujah kemudian.
  • Juga, tentukan fungsi ' paparan() ” yang memaparkan nilai objek yang diluluskan.
  • Di dalam ' utama() ”, buat objek “Pengimbas” untuk membenarkan input pengguna melalui “ Sistem.dalam ” parameter.
  • Juga, kaitkan ' nextInt() ” dan “ seterusnya() ” kaedah untuk mengambil input pengguna integer dan rentetan, masing-masing.
  • Buat objek kelas melalui ' baru ' kata kunci dan ' CopyObject() ” pembina yang mempunyai nilai input pengguna sebagai hujahnya.
  • Juga, cipta objek salinan yang mempunyai objek yang dicipta sebagai hujahnya untuk mengembalikan kandungan yang disalin dengan merujuk kepada pembina salinan kelas.
  • Akhir sekali, mohon ' paparan() fungsi ” untuk memaparkan nilai input pengguna yang diluluskan dan menutup “Pengimbas”.

Pengeluaran



Dalam output ini, ia boleh tersirat bahawa objek salinan dicipta dan dipaparkan dengan sewajarnya.

Pendekatan 2: Menyalin Objek dalam Java Melalui Kaedah 'klon()'.

' klon() ' kaedah ' java.lang.Object ” kelas mengambil objek sebagai parameter, mencipta dan memberikan salinannya. Kaedah ini boleh dilaksanakan untuk menyalin objek dengan merujuk kepada objek yang telah dibuat (yang perlu disalin) dan kaedah 'klon()'.

Sintaks

objek. klon ( )

Kaedah ini memberikan salinan objek dan membuang ' CloneNotSupportedException ” jika kelas objek tidak melaksanakan/menggunakan antara muka “Boleh Diklon”.

Contoh
Pergi melalui baris kod di bawah:

awam kelas CopyObject melaksanakan Boleh diklon {
int ID ;
Tali bandar ;
CopyObject ( int ID , Tali bandar ) {
ini . ID = ID ;
ini . bandar = bandar ;
}
awam batal paparan ( ) {
Sistem. keluar . println ( 'ID ->' + ini . ID ) ;
Sistem. keluar . println ( 'Bandar ->' + ini . bandar ) ;
}
awam statik batal utama ( Tali [ ] args ) membaling CloneNotSupportedException {
Input pengimbas = baru Pengimbas ( Sistem. dalam ) ;
Sistem. keluar . println ( 'Masukkan id:' ) ;
int ID = input. seterusnyaInt ( ) ;
Sistem. keluar . println ( 'Masuk ke bandar:' ) ;
Tali bandar = input. seterusnya ( ) ;
Objek CopyObject1 = baru CopyObject ( ID , bandar ) ;
Sistem. keluar . println ( 'Objek Lalai ->' ) ;
objek1. paparan ( ) ;
Sistem. keluar . println ( 'Objek Disalin ->' ) ;
Objek CopyObject2 = ( CopyObject ) objek1. klon ( ) ;
objek2. paparan ( ) ;
input. dekat ( ) ;
} }

Mengikut blok kod di atas, lakukan langkah-langkah yang dinyatakan di bawah:

  • Ingat pendekatan yang dibincangkan untuk mentakrifkan kelas, menentukan pembolehubah ahli, mencipta pembina kelas berparameter (memperuntukkan nilai yang diluluskan), dan menentukan fungsi untuk memaparkan nilai, masing-masing.
  • Sekarang, dalam ' utama() ”, begitu juga, pengguna memasukkan nilai dan menghantar nilai ini kepada objek kelas yang dicipta dan memaparkannya melalui fungsi yang sepadan.
  • Selepas itu, ' klon() ” kaedah berkuat kuasa yang dikaitkan dengan objek yang telah dibuat untuk mencipta objek salinan.
  • Akhir sekali, paparkan kandungan objek yang disalin juga melalui fungsi yang dibincangkan.

Pengeluaran

Dalam hasil ini, dapat diperhatikan bahawa nilai input pengguna dikembalikan dua kali dengan hasil yang sama, memastikan objek kelas disalin dengan sewajarnya.

Kesimpulan

Objek boleh disalin dalam Java menggunakan ' Pembina Salin ', atau ' klon() ” kaedah. Pendekatan terdahulu menyalin objek dengan mengambil objek yang telah dibuat sebagai hujah pembina salinan. Pendekatan yang terakhir dikaitkan secara langsung dengan objek kelas yang dicipta. Tulisan ini menunjukkan pendekatan untuk menyalin objek dalam Java.