Hvordan kopierer jeg et objekt i Java

Hvordan Kopierer Jeg Et Objekt I Java



I Java træder kopiering af et objekt i kraft, hvor der er behov for at udnytte de allerede implementerede funktioner i koden i stedet for at anvende dem igen fra bunden. Det er også en hjælp, når det kommer til at opdatere data baseret på de indeholdte poster. På denne måde reducerer det kodekompleksiteten og udnyttelsen af ​​ressourcerne effektivt.

Denne artikel vil demonstrere fremgangsmåderne til at kopiere et objekt i Java.

Hvordan kopierer jeg et objekt i Java?

Et objekt kan kopieres i Java ved hjælp af følgende fremgangsmåder:







Få adgang til alle klasser i ' java.util ”-pakke, før du går videre til eksemplerne:



importere java. util . *;

Fremgangsmåde 1: Kopiering af et objekt i Java ved hjælp af 'Copy Constructor'

Det ' Kopi konstruktør ” opretter/definerer et objekt ved at henvise til det samme klasseobjekt, der er oprettet tidligere.



Eksempel
Følgende eksempel anvender 'Copy Constructor' til at kopiere et objekt:





offentlig klasse CopyObject {
int id ;
Snor by ;
CopyObject ( int id , Snor by ) {
det her . id = id ;
det her . by = by ; }
CopyObject ( CopyObject-objekt ) {
det her . id = objekt. id ;
det her . by = objekt. by ; }
offentlig ugyldig Skærm ( ) {
System. ud . println ( 'ID ->' + det her . id ) ;
System. ud . println ( 'By ->' + det her . by ) ; }
offentlig statisk ugyldig vigtigste ( Snor [ ] args ) {
Scanner input = ny Scanner ( System. i ) ;
System. ud . println ( 'Indtast id:' ) ;
int id = input. næsteInt ( ) ;
System. ud . println ( 'Indtast byen:' ) ;
Snor by = input. Næste ( ) ;
CopyObject objekt1 = ny CopyObject ( id , by ) ;
CopyObject objekt2 = ny CopyObject ( objekt 1 ) ;
System. ud . println ( 'Standardobjekt ->' ) ;
objekt 1. Skærm ( ) ;
System. ud . println ( 'Kopieret objekt ->' ) ;
objekt 2. Skærm ( ) ;
input. tæt ( ) ;
} }

I ovenstående kodestykke:

  • Opret en klasse med navnet ' CopyObject ”.
  • Angiv de angivne medlemsvariabler for klassen.
  • Derefter skal du oprette en parametriseret klassekonstruktør, der allokerer de overførte værdier til de angivne variable via ' det her ”.
  • Opret nu en ' Kopi konstruktør ”, der tager et allerede oprettet klassetypeobjekt som sin parameter, der vil blive videregivet som et argument senere.
  • Definer også funktionen ' Skærm() ', der viser de beståede objektværdier.
  • I ' hoved() '-metoden skal du lave et 'Scanner'-objekt for at tillade brugerinput via ' System.in ' parameter.
  • Tilknyt også ' nextInt() ' og ' Næste() ”-metoder til at tage henholdsvis heltal- og strengbrugerinput.
  • Opret et klasseobjekt via ' ny ' søgeord og ' CopyObject() ” konstruktør med brugerens inputværdier som argumenter.
  • Opret også et kopiobjekt med det oprettede objekt som argument for at returnere det kopierede indhold ved at henvise til klassens kopikonstruktør.
  • Til sidst påberåber du ' Skærm() ”-funktion til at vise de beståede brugerinputværdier og lukke “Scanner”.

Produktion



I dette output kan det antydes, at et kopiobjekt oprettes og vises i overensstemmelse hermed.

Fremgangsmåde 2: Kopiering af et objekt i Java Via metoden 'clone()'.

Det ' klone() 'metoden af ​​' java.lang.Object ” klasse tager et objekt som en parameter, opretter og giver en kopi af det. Denne metode kan implementeres til at kopiere et objekt ved at henvise til det allerede oprettede objekt (som skal kopieres) og metoden 'clone()'.

Syntaks

objekt. klon ( )

Denne metode giver en kopi af objektet og kaster ' CloneNotSupportedException ', hvis objektets klasse ikke implementerer/anvender grænsefladen 'Klonbar'.

Eksempel
Gå gennem nedenstående kodelinjer:

offentlig klasse CopyObject redskaber Kan klones {
int id ;
Snor by ;
CopyObject ( int id , Snor by ) {
det her . id = id ;
det her . by = by ;
}
offentlig ugyldig Skærm ( ) {
System. ud . println ( 'ID ->' + det her . id ) ;
System. ud . println ( 'By ->' + det her . by ) ;
}
offentlig statisk ugyldig vigtigste ( Snor [ ] args ) kaster CloneNotSupportedException {
Scanner input = ny Scanner ( System. i ) ;
System. ud . println ( 'Indtast id:' ) ;
int id = input. næsteInt ( ) ;
System. ud . println ( 'Indtast byen:' ) ;
Snor by = input. Næste ( ) ;
CopyObject objekt1 = ny CopyObject ( id , by ) ;
System. ud . println ( 'Standardobjekt ->' ) ;
objekt 1. Skærm ( ) ;
System. ud . println ( 'Kopieret objekt ->' ) ;
CopyObject objekt2 = ( CopyObject ) objekt 1. klon ( ) ;
objekt 2. Skærm ( ) ;
input. tæt ( ) ;
} }

I henhold til ovenstående kodeblok skal du udføre nedenstående trin:

  • Genkald de diskuterede tilgange til henholdsvis at definere en klasse, specificere medlemsvariablerne, oprette en parameteriseret klassekonstruktør (allokere de beståede værdier) og definere en funktion til at vise værdierne.
  • Nu, i ' hoved() ”, på samme måde indtaster brugeren værdierne og sender disse værdier til det oprettede klasseobjekt og viser dem via den tilsvarende funktion.
  • Derefter vil ' klone() ” metode træder i kraft, der er knyttet til det allerede oprettede objekt for at oprette et kopiobjekt.
  • Til sidst skal du også vise det kopierede objektindhold via den omtalte funktion.

Produktion

I dette resultat kan det observeres, at brugerinputværdierne returneres to gange med identiske resultater, hvilket sikrer, at klasseobjektet kopieres korrekt.

Konklusion

Et objekt kan kopieres i Java ved hjælp af ' Kopi konstruktør ', eller den ' klone() ” metode. Den tidligere fremgangsmåde kopierer objektet ved at tage det allerede oprettede objekt som et kopikonstruktørargument. Sidstnævnte tilgang er forbundet direkte med det oprettede klasseobjekt. Denne opskrivning demonstrerede fremgangsmåderne til at kopiere et objekt i Java.