Bagaimana cara Menyalin Objek di Java

Bagaimana Cara Menyalin Objek Di Java



Di Java, penyalinan objek berlaku di mana ada kebutuhan untuk memanfaatkan fungsionalitas yang sudah diimplementasikan dalam kode alih-alih menerapkannya lagi dari awal. Juga, ini sangat membantu dalam memperbarui data berdasarkan catatan yang ada. Dengan cara ini, ini mengurangi kompleksitas kode dan pemanfaatan sumber daya secara efektif.

Artikel ini akan mendemonstrasikan pendekatan untuk menyalin objek di Java.

Bagaimana cara Menyalin Objek di Java?

Sebuah objek dapat disalin di Java menggunakan pendekatan berikut:







Akses semua kelas dalam ' java.util ” paket sebelum pindah ke contoh:



impor Jawa. utilitas . *;

Pendekatan 1: Menyalin Objek di Java Menggunakan “Copy Constructor”

Salin Pembuat ” membuat/mendefinisikan objek dengan mengacu pada objek kelas yang sama yang dibuat sebelumnya.



Contoh
Contoh berikut menerapkan 'Copy Constructor' untuk menyalin objek:





publik kelas CopyObject {
int pengenal ;
Rangkaian kota ;
CopyObject ( int pengenal , Rangkaian kota ) {
ini . pengenal = pengenal ;
ini . kota = kota ; }
CopyObject ( objek CopyObject ) {
ini . pengenal = obyek. pengenal ;
ini . kota = obyek. kota ; }
publik ruang kosong menampilkan ( ) {
Sistem. keluar . println ( 'KTP ->' + ini . pengenal ) ;
Sistem. keluar . println ( 'Kota ->' + ini . kota ) ; }
publik statis ruang kosong utama ( Rangkaian [ ] argumen ) {
Masukan pemindai = baru Pemindai ( Sistem. di dalam ) ;
Sistem. keluar . println ( 'Masukkan id:' ) ;
int pengenal = memasukkan. nextInt ( ) ;
Sistem. keluar . println ( 'Masuk ke kota:' ) ;
Rangkaian kota = memasukkan. Berikutnya ( ) ;
objek CopyObject1 = baru CopyObject ( pengenal , kota ) ;
objek CopyObject2 = baru CopyObject ( objek1 ) ;
Sistem. keluar . println ( 'Objek Default ->' ) ;
objek1. menampilkan ( ) ;
Sistem. keluar . println ( 'Objek yang Disalin ->' ) ;
objek2. menampilkan ( ) ;
memasukkan. menutup ( ) ;
} }

Dalam cuplikan kode di atas:

  • Buat kelas bernama “ CopyObject ”.
  • Tentukan variabel anggota kelas yang dinyatakan.
  • Setelah itu, buat konstruktor kelas berparameter yang mengalokasikan nilai yang diteruskan ke variabel yang ditentukan melalui ' ini ”.
  • Sekarang, buat ' Salin Pembuat ” yang menggunakan objek tipe kelas yang sudah dibuat sebagai parameternya yang akan diteruskan sebagai argumen nanti.
  • Tentukan juga fungsi “ menampilkan() ” yang menampilkan nilai objek yang diteruskan.
  • Dalam ' utama() ”, buat objek 'Scanner' untuk memungkinkan input pengguna melalui ' Sistem.dalam ” parameter.
  • Juga, kaitkan ' nextInt() ' Dan ' Berikutnya() ” metode untuk mengambil input pengguna integer dan string, masing-masing.
  • Buat objek kelas melalui ' baru ” kata kunci dan “ CopyObject() ” konstruktor yang memiliki nilai input pengguna sebagai argumennya.
  • Juga, buat objek salinan dengan objek yang dibuat sebagai argumennya untuk mengembalikan konten yang disalin dengan merujuk ke konstruktor salinan kelas.
  • Terakhir, aktifkan “ menampilkan() ” untuk menampilkan nilai input pengguna yang diteruskan dan menutup 'Scanner'.

Keluaran



Dalam output ini, dapat tersirat bahwa objek salinan dibuat dan ditampilkan sesuai dengan itu.

Pendekatan 2: Menyalin Objek di Java Melalui Metode “clone()”.

klon() ” metode dari “ java.lang.Objek ” kelas mengambil objek sebagai parameter, membuat dan memberikan salinannya. Metode ini dapat diterapkan untuk menyalin objek dengan mengacu pada objek yang sudah dibuat (yang perlu disalin) dan metode “clone()”.

Sintaksis

obyek. klon ( )

Metode ini memberikan salinan objek dan melempar ' CloneNotSupportedException ” jika kelas objek tidak mengimplementasikan/menerapkan antarmuka “Cloneable”.

Contoh
Pergi melalui baris kode di bawah ini:

publik kelas CopyObject alat Dapat digandakan {
int pengenal ;
Rangkaian kota ;
CopyObject ( int pengenal , Rangkaian kota ) {
ini . pengenal = pengenal ;
ini . kota = kota ;
}
publik ruang kosong menampilkan ( ) {
Sistem. keluar . println ( 'KTP ->' + ini . pengenal ) ;
Sistem. keluar . println ( 'Kota ->' + ini . kota ) ;
}
publik statis ruang kosong utama ( Rangkaian [ ] argumen ) melempar CloneNotSupportedException {
Masukan pemindai = baru Pemindai ( Sistem. di dalam ) ;
Sistem. keluar . println ( 'Masukkan id:' ) ;
int pengenal = memasukkan. nextInt ( ) ;
Sistem. keluar . println ( 'Masuk ke kota:' ) ;
Rangkaian kota = memasukkan. Berikutnya ( ) ;
objek CopyObject1 = baru CopyObject ( pengenal , kota ) ;
Sistem. keluar . println ( 'Objek Default ->' ) ;
objek1. menampilkan ( ) ;
Sistem. keluar . println ( 'Objek yang Disalin ->' ) ;
objek CopyObject2 = ( CopyObject ) objek1. klon ( ) ;
objek2. menampilkan ( ) ;
memasukkan. menutup ( ) ;
} }

Menurut blok kode di atas, lakukan langkah-langkah berikut:

  • Ingat pendekatan yang dibahas untuk mendefinisikan kelas, menentukan variabel anggota, membuat konstruktor kelas berparameter (mengalokasikan nilai yang diteruskan), dan menentukan fungsi untuk menampilkan nilai masing-masing.
  • Sekarang di ' utama() ”, demikian pula, pengguna memasukkan nilai dan meneruskan nilai ini ke objek kelas yang dibuat dan menampilkannya melalui fungsi yang sesuai.
  • Setelah itu, “ klon() ” metode mulai berlaku yang dikaitkan dengan objek yang sudah dibuat untuk membuat objek salinan.
  • Terakhir, tampilkan juga konten objek yang disalin melalui fungsi yang dibahas.

Keluaran

Dalam hasil ini, dapat diamati bahwa nilai masukan pengguna dikembalikan dua kali dengan hasil yang identik, memastikan bahwa objek kelas disalin dengan tepat.

Kesimpulan

Sebuah objek dapat disalin di Java menggunakan “ Salin Pembuat ”, atau “ klon() ' metode. Pendekatan sebelumnya menyalin objek dengan mengambil objek yang sudah dibuat sebagai argumen copy constructor. Pendekatan terakhir dikaitkan langsung dengan objek kelas yang dibuat. Tulisan ini mendemonstrasikan pendekatan untuk menyalin objek di Java.