Kelas Siswa:
Paket klon klon;/*untuk mengkloning, alasan ini harus diimplementasikan: dapat dikloning, untuk menandai objek ini, dapat dikloning: kelas ini mengimplementasikan antarmuka yang dapat dikloning untuk menunjukkan bahwa metode objek.clone () dapat secara hukum menyalin instance kelas ini berdasarkan bidang. Antarmuka ini adalah antarmuka tag, memberi tahu kami bahwa kelas yang mengimplementasikan antarmuka ini dapat mewujudkan penyalinan objek. */Siswa kelas publik mengimplementasikan clonable {private string name; private int usia; siswa publik () {} siswa publik (nama string, int usia) {super (); this.name = name; this.age = usia;} public string getName () {return name;} public void setName (string name) {this.name name;} public inter ({public {name; {name; {this.age = age;} // Tulis ulang subkolom Metode Kloned untuk memanggil @Overrideprotected Object Clone () melempar clonenotsupportedException {return super.clone ();}}Tes Kelas Siswa Kloning:
Paket Klon Clone;/ * * Protected Void Finalize (): Metode ini dipanggil oleh pengumpul sampah objek ketika pengumpul sampah menentukan bahwa tidak ada lagi referensi ke objek yang ada. Digunakan untuk daur ulang sampah, tetapi tidak pasti kapan akan didaur ulang. *Clone objek yang dilindungi (): Membuat dan mengembalikan salinan objek ini. * A: Tulis ulang metode ini * * dapat dikloning: kelas ini mengimplementasikan antarmuka yang dapat dikloning untuk menunjukkan bahwa metode objek.clone () dapat secara legal menyalin instance kelas ini menurut bidang. * Antarmuka ini adalah antarmuka tag, memberi tahu kami bahwa kelas yang mengimplementasikan antarmuka ini dapat mewujudkan penyalinan objek. */Kelas Public SidesClone {public static void main (string [] args) melempar clonenotsupportedException {// buat siswa siswa Siswa s = siswa baru (); s.setname ("qingxia lin"); s.setage (27); // klon objek objek obj = s.clone (); siswa s2 = (Siswa) Obj; System.out.println ("------------"); System.out.println (s.getName ()+"----"+s.getage ()); System.out.println (s2.getname ()+"---"+s2.getage ()); // Praktek sebelumnya Siswa S3 = " s; System.out.println (s3.getName ()+"---"+s3.getage ()); System.out.println ("-------------"); // Faktanya, ada perbedaan S3.setname ("Liu Yi"); S3.setage (30); System.out.println (s.getname ()); -"+s.getage ()); System.out.println (s2.getName ()+" --- "+s2.getage ()); System.out.println (s3.getname ()+" --- "+s3.getage ()); System.out.println (" ------ "); // Ubah cloned satu? S2.setname ("Klon berubah nama "); s2.setage (66); System.out.println (s.getName ()+" --- "+s.getage ()); System.out.println (s2.getName ()+" --- "+S2.GE tage ()); System.out.println (s3.getName ()+"---"+s3.getage ()); System.out.println (s3.getName ()+"---"+s3.getage ()); // in Kata -kata lain, tetapkan referensi objek ke referensi. Ketika referensi dikirim ke sesuatu, objek yang ditunjuk oleh referensi yang sama akan berubah, tetapi objek yang dikloning tidak akan berubah. // Ubah beberapa propertinya menjadi objek yang dikloning, itu tidak akan mempengaruhi perubahan nilai objek lain}}Di atas adalah semua konten yang dibawa editor kepada Anda tentang perbedaan antara kloning tutup () dan referensi penugasan di Java. Saya harap ini akan membantu semua orang dan lebih mendukung wulin.com ~