Classe d'étudiants:
Clone de clone de package; / * Pour clone, cette excuse doit être implémentée: clonable, pour marquer cet objet, clonable: cette classe implémente l'interface clonable pour indiquer que la méthode object.clone () peut légalement copier l'instance de cette classe par champ. Cette interface est une interface de balise, nous indiquant que la classe implémentant cette interface peut réaliser la copie des objets. * / classe publique Student implémente clonable {nom de chaîne privée; int privé dans l'âge; étudiant public () {} public public (nom de chaîne, int age) {super (); this.name = name; this.age = age;} public string getName () {retour name;} public name name (nom de la chaîne) {this.name = name;} public int Getage () {return Age;} {this.age = age;} // réécriture la sous-colonne de méthode clonée pour appeler @OverRideProtected Object Clone () lève ClonenotsupportEdException {return super.clone ();}}Test Cloning Student Class:
Clone de clone de package; / * * Protected void finalize (): Cette méthode est appelée par le collecteur de déchets de l'objet lorsque le collecteur de déchets détermine qu'il n'y a plus de références à l'objet. Utilisé pour le recyclage des ordures, mais il est incertain quand il sera recyclé. * objet protégé clone (): crée et renvoie une copie de cet objet. * A: Réécrivez cette méthode * * Clonable: cette classe implémente l'interface clonable pour indiquer que la méthode objet.clone () peut légalement copier l'instance de cette classe par champ. * Cette interface est une interface de balise, nous indiquant que la classe implémentant cette interface peut réaliser la copie des objets. * / public class StudentClone {public static void main (String [] args) lève ClonenotsupporTedException {// Créer un objet étudiant étudiant s = new student (); s.setName ("Qingxia lin"); s.Setage (27); // clone Object Student Object Obj = S.Clone (); Student S2 = (Student) obj; System.out.println ("------------"); System.out.println (s.GetName () + "----" + S.Getage ()); System.out.println (S2.GetName () + "---" + S2.Getage ()); // Pratiques précédentes S3 = S; System.out.println (s3.GetName () + "---" + S3.Getage ()); System.out.println ("--------------"); // en fait, il existe des différences 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 (" ---------- "); // changer le cloné? S2.setName ("Clone a changé Nom "); 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 ()); // dans D'autres mots, attribuez la référence d'un objet à une référence. Lorsque la référence est envoyée à quelque chose, l'objet pointé par la même référence changera, mais l'objet cloné ne changera pas. // modifie certaines de ses propriétés à l'objet cloné, cela n'affectera pas le changement de la valeur des autres objets}}Ce qui précède est tout le contenu que l'éditeur vous apporte sur la différence entre le clonage close () et la référence d'affectation en Java. J'espère que ce sera utile à tout le monde et soutenir Wulin.com plus ~