Kā nokopēt objektu Java

Ka Nokopet Objektu Java



Programmā Java objekta kopēšana stājas spēkā, ja ir nepieciešams izmantot kodā jau ieviestās funkcijas, nevis lietot tās no jauna. Tas ir arī noderīgi, ja runa ir par datu atjaunināšanu, pamatojoties uz ietvertajiem ierakstiem. Tādā veidā tas samazina koda sarežģītību un efektīvu resursu izmantošanu.

Šajā rakstā tiks parādītas pieejas objekta kopēšanai Java.

Kā es varu kopēt objektu Java?

Objektu var kopēt Java, izmantojot šādas pieejas:







Piekļūstiet visām klasēm sadaļā ' java.util ” pakotni, pirms pāriet pie piemēriem:



imports java. util . *;

1. pieeja: objekta kopēšana Java, izmantojot “Copy Constructor”

' Kopēšanas konstruktors ” izveido/definē objektu, atsaucoties uz to pašu klases objektu, kas izveidots iepriekš.



Piemērs
Tālāk sniegtajā piemērā tiek izmantots “Kopēt konstruktors”, lai kopētu objektu:





publiski klasē CopyObject {
starpt id ;
Stīga pilsēta ;
CopyObject ( starpt id , Stīga pilsēta ) {
šis . id = id ;
šis . pilsēta = pilsēta ; }
CopyObject ( CopyObject objekts ) {
šis . id = objektu. id ;
šis . pilsēta = objektu. pilsēta ; }
publiski nederīgs displejs ( ) {
Sistēma. ārā . println ( 'ID ->' + šis . id ) ;
Sistēma. ārā . println ( 'Pilsēta ->' + šis . pilsēta ) ; }
publiski statisks nederīgs galvenais ( Stīga [ ] args ) {
Skenera ievade = jauns Skeneris ( Sistēma. iekšā ) ;
Sistēma. ārā . println ( 'Ievadiet ID:' ) ;
starpt id = ievade. nextInt ( ) ;
Sistēma. ārā . println ( 'Ievadiet pilsētu:' ) ;
Stīga pilsēta = ievade. Nākamais ( ) ;
CopyObject objekts1 = jauns CopyObject ( id , pilsēta ) ;
CopyObject objekts2 = jauns CopyObject ( objekts1 ) ;
Sistēma. ārā . println ( 'Noklusējuma objekts ->' ) ;
objekts1. displejs ( ) ;
Sistēma. ārā . println ( 'Kopēts objekts ->' ) ;
objekts2. displejs ( ) ;
ievade. aizveriet ( ) ;
} }

Iepriekš minētajā koda fragmentā:

  • Izveidojiet klasi ar nosaukumu ' CopyObject ”.
  • Norādiet norādītos klases dalībnieku mainīgos.
  • Pēc tam izveidojiet parametrizētu klases konstruktoru, kas piešķir nodotās vērtības norādītajiem mainīgajiem, izmantojot ' šis ”.
  • Tagad izveidojiet ' Kopēšanas konstruktors ”, kas kā parametru izmanto jau izveidotu klases tipa objektu, kas vēlāk tiks nodots kā arguments.
  • Tāpat definējiet funkciju ' displejs () ”, kas parāda nodoto objektu vērtības.
  • Iekš ' galvenais () ”, izveidojiet objektu “Skeneris”, lai lietotājs varētu ievadīt, izmantojot “ System.in ” parametrs.
  • Saistiet arī “ nextInt() ' un ' Nākamais() ” metodes, lai ņemtu attiecīgi veselu skaitļu un virknes lietotāja ievades.
  • Izveidojiet klases objektu, izmantojot ' jauns ' atslēgvārds un ' CopyObject() ” konstruktors, kura argumenti ir lietotāja ievades vērtības.
  • Izveidojiet arī kopijas objektu ar izveidoto objektu kā argumentu, lai atgrieztu kopēto saturu, atsaucoties uz klases kopijas konstruktoru.
  • Visbeidzot, izsauciet ' displejs () ”, lai parādītu lietotāja ievadītās vērtības un aizvērtu skeneri.

Izvade



Šajā izvadē var norādīt, ka kopēšanas objekts tiek izveidots un attiecīgi parādīts.

2. pieeja: objekta kopēšana Java, izmantojot metodi “clone()”.

' klons () ' metode ' java.lang.Object ” klase ņem objektu kā parametru, izveido un piešķir tā kopiju. Šo metodi var ieviest, lai kopētu objektu, atsaucoties uz jau izveidoto objektu (kas ir jākopē) un metodi “clone()”.

Sintakse

objektu. klons ( )

Šī metode dod objekta kopiju un izmet ' CloneNotSupportedException ”, ja objekta klase neievieš/nelieto saskarni “Cloneable”.

Piemērs
Izejiet tālāk norādītās koda rindiņas:

publiski klasē CopyObject īsteno Klonējams {
starpt id ;
Stīga pilsēta ;
CopyObject ( starpt id , Stīga pilsēta ) {
šis . id = id ;
šis . pilsēta = pilsēta ;
}
publiski nederīgs displejs ( ) {
Sistēma. ārā . println ( 'ID ->' + šis . id ) ;
Sistēma. ārā . println ( 'Pilsēta ->' + šis . pilsēta ) ;
}
publiski statisks nederīgs galvenais ( Stīga [ ] args ) metieni CloneNotSupportedException {
Skenera ievade = jauns Skeneris ( Sistēma. iekšā ) ;
Sistēma. ārā . println ( 'Ievadiet ID:' ) ;
starpt id = ievade. nextInt ( ) ;
Sistēma. ārā . println ( 'Ievadiet pilsētu:' ) ;
Stīga pilsēta = ievade. Nākamais ( ) ;
CopyObject objekts1 = jauns CopyObject ( id , pilsēta ) ;
Sistēma. ārā . println ( 'Noklusējuma objekts ->' ) ;
objekts1. displejs ( ) ;
Sistēma. ārā . println ( 'Kopēts objekts ->' ) ;
CopyObject objekts2 = ( CopyObject ) objekts1. klons ( ) ;
objekts2. displejs ( ) ;
ievade. aizveriet ( ) ;
} }

Saskaņā ar iepriekš minēto koda bloku veiciet tālāk norādītās darbības.

  • Atgādiniet aplūkotās pieejas attiecīgi klases definēšanai, dalībnieku mainīgo precizēšanai, parametrizēta klases konstruktora izveidei (nodoto vērtību piešķiršanai) un vērtību attēlošanas funkcijas definēšanai.
  • Tagad sadaļā “ galvenais () ”, tāpat lietotājs ievada vērtības un nodod šīs vērtības izveidotajam klases objektam un parāda tās, izmantojot atbilstošo funkciju.
  • Pēc tam ' klons () ” stājas spēkā metode, kas ir saistīta ar jau izveidoto objektu, lai izveidotu kopijas objektu.
  • Visbeidzot, parādiet arī kopētā objekta saturu, izmantojot apspriesto funkciju.

Izvade

Šajā iznākumā var novērot, ka lietotāja ievadītās vērtības tiek atgrieztas divas reizes ar identiskiem rezultātiem, nodrošinot, ka klases objekts tiek pareizi kopēts.

Secinājums

Objektu var kopēt Java, izmantojot ' Kopēšanas konstruktors ', vai ' klons () ” metode. Iepriekšējā pieeja kopē objektu, ņemot jau izveidoto objektu kā kopijas konstruktora argumentu. Pēdējā pieeja ir tieši saistīta ar izveidoto klases objektu. Šis raksts demonstrēja pieejas objekta kopēšanai Java.