Kako mogu kopirati objekt u Javi

Kako Mogu Kopirati Objekt U Javi



U Javi, kopiranje objekta dolazi na snagu kada postoji potreba za korištenjem već implementiranih funkcionalnosti u kodu umjesto da ih se ponovno primjenjuje ispočetka. Također, pomaže kada je u pitanju ažuriranje podataka na temelju sadržanih zapisa. Na taj način smanjuje složenost koda i učinkovito iskorištavanje resursa.

Ovaj će članak pokazati pristupe kopiranju objekta u Javi.

Kako mogu kopirati objekt u Javi?

Objekt se može kopirati u Javi korištenjem sljedećih pristupa:







Pristupite svim razredima unutar ' java.util ” prije prelaska na primjere:



uvoz Java. util . *;

Pristup 1: Kopiranje objekta u Javi pomoću 'Konstruktora kopiranja'

' Konstruktor kopiranja ” stvara/definira objekt pozivajući se na isti prethodno kreirani objekt klase.



Primjer
Sljedeći primjer primjenjuje 'Konstruktor kopiranja' za kopiranje objekta:





javnost razreda CopyObject {
int iskaznica ;
Niz Grad ;
CopyObject ( int iskaznica , Niz Grad ) {
ovaj . iskaznica = iskaznica ;
ovaj . Grad = Grad ; }
CopyObject ( Objekt CopyObject ) {
ovaj . iskaznica = objekt. iskaznica ;
ovaj . Grad = objekt. Grad ; }
javnost poništiti prikaz ( ) {
Sustav. van . println ( 'ID ->' + ovaj . iskaznica ) ;
Sustav. van . println ( 'Grad ->' + ovaj . Grad ) ; }
javnost statički poništiti glavni ( Niz [ ] args ) {
Unos skenera = novi Skener ( Sustav. u ) ;
Sustav. van . println ( 'Unesite ID:' ) ;
int iskaznica = ulazni. nextInt ( ) ;
Sustav. van . println ( 'Uđi u grad:' ) ;
Niz Grad = ulazni. Sljedeći ( ) ;
CopyObject object1 = novi CopyObject ( iskaznica , Grad ) ;
CopyObject object2 = novi CopyObject ( objekt1 ) ;
Sustav. van . println ( 'Zadani objekt ->' ) ;
objekt1. prikaz ( ) ;
Sustav. van . println ( 'Kopiran objekt ->' ) ;
objekt2. prikaz ( ) ;
ulazni. Zatvoriti ( ) ;
} }

U gornjem isječku koda:

  • Napravite klasu pod nazivom ' CopyObject ”.
  • Specificirajte navedene varijable članice klase.
  • Nakon toga izradite parametrizirani konstruktor klase koji proslijeđene vrijednosti dodjeljuje navedenim varijablama putem ' ovaj ”.
  • Sada stvorite ' Konstruktor kopiranja ” koja uzima već kreirani objekt tipa klase kao svoj parametar koji će kasnije biti proslijeđen kao argument.
  • Također, definirajte funkciju ' prikaz() ” koji prikazuje proslijeđene vrijednosti objekta.
  • u ' glavni() ', napravite objekt 'Skener' kako biste omogućili korisnički unos putem ' Sustav.in ” parametar.
  • Također, pridružite ' nextInt() ' i ' Sljedeći() ” metode za uzimanje korisničkih inputa cijelog broja i niza.
  • Stvorite objekt klase putem ' novi ' ključna riječ i ' CopyObject() ” konstruktor koji ima korisničke ulazne vrijednosti kao argumente.
  • Također, kreirajte objekt kopije koji ima kreirani objekt kao argument za vraćanje kopiranog sadržaja pozivanjem na konstruktor kopije klase.
  • Na kraju, pozovite ' prikaz() ” za prikaz prenesenih korisničkih vrijednosti i zatvaranje „Skenera”.

Izlaz



U ovom izlazu može se implicirati da je objekt kopije stvoren i prikazan u skladu s tim.

Pristup 2: Kopiranje objekta u Javi putem metode “clone()”.

' klon() ' metoda ' java.lang.Object ” klasa uzima objekt kao parametar, stvara i daje njegovu kopiju. Ova se metoda može implementirati za kopiranje objekta pozivanjem na već stvoreni objekt (koji se treba kopirati) i metodu 'clone()'.

Sintaksa

objekt. klon ( )

Ova metoda daje kopiju objekta i izbacuje ' CloneNotSupportedException ” ako klasa objekta ne implementira/primjenjuje sučelje „Kloniranje”.

Primjer
Prođite kroz donje retke koda:

javnost razreda CopyObject oruđa Može se klonirati {
int iskaznica ;
Niz Grad ;
CopyObject ( int iskaznica , Niz Grad ) {
ovaj . iskaznica = iskaznica ;
ovaj . Grad = Grad ;
}
javnost poništiti prikaz ( ) {
Sustav. van . println ( 'ID ->' + ovaj . iskaznica ) ;
Sustav. van . println ( 'Grad ->' + ovaj . Grad ) ;
}
javnost statički poništiti glavni ( Niz [ ] args ) bacanja CloneNotSupportedException {
Unos skenera = novi Skener ( Sustav. u ) ;
Sustav. van . println ( 'Unesite ID:' ) ;
int iskaznica = ulazni. nextInt ( ) ;
Sustav. van . println ( 'Uđi u grad:' ) ;
Niz Grad = ulazni. Sljedeći ( ) ;
CopyObject object1 = novi CopyObject ( iskaznica , Grad ) ;
Sustav. van . println ( 'Zadani objekt ->' ) ;
objekt1. prikaz ( ) ;
Sustav. van . println ( 'Kopiran objekt ->' ) ;
CopyObject object2 = ( CopyObject ) objekt1. klon ( ) ;
objekt2. prikaz ( ) ;
ulazni. Zatvoriti ( ) ;
} }

U skladu s gornjim blokom koda, izvršite dolje navedene korake:

  • Prisjetite se razmatranih pristupa za definiranje klase, određivanje varijabli članova, kreiranje parametriziranog konstruktora klase (dodjela proslijeđenih vrijednosti), odnosno definiranje funkcije za prikaz vrijednosti.
  • Sada, u ' glavni() “, na sličan način, korisnik unosi vrijednosti i prosljeđuje te vrijednosti kreiranom objektu klase i prikazuje ih putem odgovarajuće funkcije.
  • Nakon toga, ' klon() ” stupa na snagu metoda koja je povezana s već stvorenim objektom za stvaranje kopije objekta.
  • Na kraju, prikažite sadržaj kopiranog objekta također putem razmatrane funkcije.

Izlaz

U ovom ishodu može se primijetiti da se vrijednosti korisničkog unosa vraćaju dvaput s identičnim ishodom, osiguravajući da se objekt klase pravilno kopira.

Zaključak

Objekt se može kopirati u Javi pomoću ' Konstruktor kopiranja ', ili ' klon() ” metoda. Prvi pristup kopira objekt uzimajući već stvoreni objekt kao argument konstruktora kopiranja. Potonji pristup povezan je izravno s stvorenim objektom klase. Ovo pisanje demonstriralo je pristupe kopiranju objekta u Javi.