Comment copier un objet en Java

Comment Copier Un Objet En Java



En Java, la copie d'un objet entre en vigueur lorsqu'il est nécessaire d'utiliser les fonctionnalités déjà implémentées dans le code au lieu de les appliquer à nouveau à partir de zéro. En outre, il est utile lorsqu'il s'agit de mettre à jour les données en fonction des enregistrements contenus. De cette façon, il réduit efficacement la complexité du code et l'utilisation des ressources.

Cet article démontrera les approches pour copier un objet en Java.

Comment copier un objet en Java ?

Un objet peut être copié en Java en utilisant les approches suivantes :







Accédez à toutes les classes dans le ' java.util ” package avant de passer aux exemples :



importer Java. utile . * ;

Approche 1 : copier un objet en Java à l'aide de 'Copy Constructor'

Le ' Copier le constructeur ” crée/définit un objet en se référant au même objet de classe créé précédemment.



Exemple
L'exemple suivant applique le 'Copy Constructor' pour copier un objet :





public classe CopierObjet {
entier identifiant ;
Chaîne ville ;
CopierObjet ( entier identifiant , Chaîne ville ) {
ce . identifiant = identifiant ;
ce . ville = ville ; }
CopierObjet ( Objet CopyObjectCopyObject object ) {
ce . identifiant = objet. identifiant ;
ce . ville = objet. ville ; }
public annuler afficher ( ) {
Système. dehors . println ( 'Identifiant ->' + ce . identifiant ) ;
Système. dehors . println ( 'Ville ->' + ce . ville ) ; }
public statique annuler principal ( Chaîne [ ] arguments ) {
Entrée scanner = nouveau Scanner ( Système. dans ) ;
Système. dehors . println ( 'Entrez l'identifiant : ' ) ;
entier identifiant = saisir. suivantInt ( ) ;
Système. dehors . println ( « Entrez dans la ville : » ) ;
Chaîne ville = saisir. suivant ( ) ;
Objet CopyObject1 = nouveau CopierObjet ( identifiant , ville ) ;
Objet CopyObject2 = nouveau CopierObjet ( objet1 ) ;
Système. dehors . println ( 'Objet par défaut ->' ) ;
objet1. afficher ( ) ;
Système. dehors . println ( 'Objet copié ->' ) ;
objet2. afficher ( ) ;
saisir. fermer ( ) ;
} }

Dans l'extrait de code ci-dessus :

  • Créez une classe nommée ' CopierObjet ”.
  • Spécifiez les variables membres déclarées de la classe.
  • Après cela, créez un constructeur de classe paramétré qui alloue les valeurs transmises aux variables spécifiées via ' ce ”.
  • Maintenant, créez un ' Copier le constructeur ” qui prend un objet de type classe déjà créé comme paramètre qui sera passé en argument plus tard.
  • Définissez également la fonction ' afficher() ” qui affiche les valeurs d'objet transmises.
  • Dans le ' principal() ', créez un objet 'Scanner' pour permettre la saisie de l'utilisateur via la méthode ' System.in ” paramètre.
  • Aussi, associez le « nextInt() ' et ' suivant() ” pour prendre les entrées utilisateur entier et chaîne, respectivement.
  • Créez un objet de classe via le ' nouveau » mot-clé et le « CopierObjet() ” constructeur ayant les valeurs d'entrée utilisateur comme arguments.
  • Créez également un objet de copie ayant l'objet créé comme argument pour renvoyer le contenu copié en faisant référence au constructeur de copie de classe.
  • Enfin, invoquez le « afficher() » pour afficher les valeurs saisies par l'utilisateur transmises et fermer le « Scanner ».

Sortir



Dans cette sortie, il peut être implicite qu'un objet de copie est créé et affiché en conséquence.

Approche 2 : copier un objet en Java via la méthode 'clone()'

Le ' cloner() 'méthode de la' java.lang.Object ” La classe prend un objet en paramètre, le crée et en donne une copie. Cette méthode peut être implémentée pour copier un objet en se référant à l'objet déjà créé (qui doit être copié) et à la méthode 'clone()'.

Syntaxe

objet. cloner ( )

Cette méthode donne une copie de l'objet et lance ' CloneNotSupportedException ' si la classe de l'objet n'implémente/n'applique pas l'interface 'clonable'.

Exemple
Parcourez les lignes de code ci-dessous :

public classe CopierObjet met en oeuvre Clonable {
entier identifiant ;
Chaîne ville ;
CopierObjet ( entier identifiant , Chaîne ville ) {
ce . identifiant = identifiant ;
ce . ville = ville ;
}
public annuler afficher ( ) {
Système. dehors . println ( 'Identifiant ->' + ce . identifiant ) ;
Système. dehors . println ( 'Ville ->' + ce . ville ) ;
}
public statique annuler principal ( Chaîne [ ] arguments ) jette CloneNotSupportedException {
Entrée scanner = nouveau Scanner ( Système. dans ) ;
Système. dehors . println ( 'Entrez l'identifiant : ' ) ;
entier identifiant = saisir. suivantInt ( ) ;
Système. dehors . println ( « Entrez dans la ville : » ) ;
Chaîne ville = saisir. suivant ( ) ;
Objet CopyObject1 = nouveau CopierObjet ( identifiant , ville ) ;
Système. dehors . println ( 'Objet par défaut ->' ) ;
objet1. afficher ( ) ;
Système. dehors . println ( 'Objet copié ->' ) ;
Objet CopyObject2 = ( CopierObjet ) objet1. cloner ( ) ;
objet2. afficher ( ) ;
saisir. fermer ( ) ;
} }

Selon le bloc de code ci-dessus, effectuez les étapes ci-dessous :

  • Rappelez-vous les approches discutées pour définir une classe, spécifier les variables membres, créer un constructeur de classe paramétré (allouer les valeurs passées) et définir une fonction pour afficher les valeurs, respectivement.
  • Maintenant en ' principal() ', de même, l'utilisateur saisit les valeurs et transmet ces valeurs à l'objet de classe créé et les affiche via la fonction correspondante.
  • Après cela, le « cloner() ” la méthode entre en vigueur qui est associée à l'objet déjà créé pour créer un objet de copie.
  • Enfin, affichez également le contenu de l'objet copié via la fonction décrite.

Sortir

Dans ce résultat, on peut observer que les valeurs d'entrée utilisateur sont renvoyées deux fois avec des résultats identiques, garantissant que l'objet de classe est copié de manière appropriée.

Conclusion

Un objet peut être copié en Java en utilisant le ' Copier le constructeur ', ou la ' cloner() ' méthode. La première approche copie l'objet en prenant l'objet déjà créé comme argument du constructeur de copie. Cette dernière approche est directement associée à l'objet de classe créé. Cet article a démontré les approches pour copier un objet en Java.