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:
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.