Kaip nukopijuoti objektą Java

Kaip Nukopijuoti Objekta Java



„Java“ programoje objekto kopijavimas įsigalioja tada, kai reikia panaudoti jau įdiegtas kode funkcijas, o ne jas taikyti iš naujo. Be to, tai padeda atnaujinti duomenis pagal esančius įrašus. Tokiu būdu sumažinamas kodo sudėtingumas ir efektyvus išteklių panaudojimas.

Šis straipsnis parodys, kaip kopijuoti objektą Java.

Kaip nukopijuoti objektą „Java“?

Objektą galima nukopijuoti Java naudojant šiuos metodus:







Pasiekite visas klases „ java.util “ paketą prieš pereinant prie pavyzdžių:



importuoti java. util . *;

1 metodas: objekto kopijavimas Java naudojant „Copy Constructor“

Kopijavimo konstruktorius “ sukuria / apibrėžia objektą, nurodydamas tos pačios klasės objektą, sukurtą anksčiau.



Pavyzdys
Šis pavyzdys taikomas „Kopijavimo konstruktorius“ objektui kopijuoti:





viešas klasė Kopijuoti objektą {
tarpt id ;
Styga miestas ;
Kopijuoti objektą ( tarpt id , Styga miestas ) {
tai . id = id ;
tai . miestas = miestas ; }
Kopijuoti objektą ( CopyObject objektas ) {
tai . id = objektas. id ;
tai . miestas = objektas. miestas ; }
viešas tuštuma ekranas ( ) {
Sistema. išeiti . println ( 'ID ->' + tai . id ) ;
Sistema. išeiti . println ( 'Miestas ->' + tai . miestas ) ; }
viešas statinis tuštuma pagrindinis ( Styga [ ] args ) {
Skaitytuvo įvestis = naujas Skaitytuvas ( Sistema. in ) ;
Sistema. išeiti . println ( 'Įveskite ID:' ) ;
tarpt id = įvestis. nextInt ( ) ;
Sistema. išeiti . println ( 'Įeikite į miestą:' ) ;
Styga miestas = įvestis. Kitas ( ) ;
CopyObject object1 = naujas Kopijuoti objektą ( id , miestas ) ;
CopyObject object2 = naujas Kopijuoti objektą ( objektas1 ) ;
Sistema. išeiti . println ( 'Numatytasis objektas ->' ) ;
objektas1. ekranas ( ) ;
Sistema. išeiti . println ( 'Nukopijuotas objektas ->' ) ;
objektas2. ekranas ( ) ;
įvestis. Uždaryti ( ) ;
} }

Aukščiau pateiktame kodo fragmente:

  • Sukurkite klasę pavadinimu „ Kopijuoti objektą “.
  • Nurodykite nurodytus klasės narių kintamuosius.
  • Po to sukurkite parametrizuotą klasės konstruktorių, kuris paskirsto perduotas reikšmes nurodytiems kintamiesiems per „ tai “.
  • Dabar sukurkite „ Kopijavimo konstruktorius “, kuris kaip parametrą pasirenka jau sukurtą klasės tipo objektą, kuris vėliau bus perduotas kaip argumentas.
  • Taip pat apibrėžkite funkciją ' ekranas () “, kuriame rodomos perduotų objektų reikšmės.
  • Viduje ' pagrindinis () “ metodą, sukurkite „Scanner“ objektą, kad vartotojas galėtų įvesti per „ System.in ' parametras.
  • Taip pat susiekite „ nextInt() “ ir „ Kitas() “ metodus atitinkamai paimti sveikąjį skaičių ir eilutę.
  • Sukurkite klasės objektą naudodami „ naujas “ raktažodis ir „ CopyObject() “ konstruktorius, kurio argumentais yra vartotojo įvesties reikšmės.
  • Taip pat sukurkite kopijos objektą, kurio argumentas yra sukurtas objektas, kad grąžintumėte nukopijuotą turinį, nurodydami klasės kopijos konstruktorių.
  • Galiausiai iškvieskite „ ekranas () “ funkcija, kad būtų rodomos perduotos vartotojo įvesties reikšmės ir uždarytas skaitytuvas.

Išvestis



Šiame išvestyje galima numanyti, kad kopijavimo objektas sukuriamas ir atitinkamai rodomas.

2 metodas: objekto kopijavimas Java naudojant „clone()“ metodą

klonas () “ metodas “ java.lang.Object ” klasė paima objektą kaip parametrą, sukuria ir pateikia jo kopiją. Šis metodas gali būti įgyvendintas norint nukopijuoti objektą, naudojant jau sukurtą objektą (kurį reikia nukopijuoti) ir metodą „clone()“.

Sintaksė

objektas. klonas ( )

Šis metodas suteikia objekto kopiją ir išmeta „ CloneNotSupportedException “, jei objekto klasė neįdiegia / netaiko „Cloneable“ sąsajos.

Pavyzdys
Eikite per toliau pateiktas kodo eilutes:

viešas klasė Kopijuoti objektą padargai Galima klonuoti {
tarpt id ;
Styga miestas ;
Kopijuoti objektą ( tarpt id , Styga miestas ) {
tai . id = id ;
tai . miestas = miestas ;
}
viešas tuštuma ekranas ( ) {
Sistema. išeiti . println ( 'ID ->' + tai . id ) ;
Sistema. išeiti . println ( 'Miestas ->' + tai . miestas ) ;
}
viešas statinis tuštuma pagrindinis ( Styga [ ] args ) metimai CloneNotSupportedException {
Skaitytuvo įvestis = naujas Skaitytuvas ( Sistema. in ) ;
Sistema. išeiti . println ( 'Įveskite ID:' ) ;
tarpt id = įvestis. nextInt ( ) ;
Sistema. išeiti . println ( 'Įeikite į miestą:' ) ;
Styga miestas = įvestis. Kitas ( ) ;
CopyObject object1 = naujas Kopijuoti objektą ( id , miestas ) ;
Sistema. išeiti . println ( 'Numatytasis objektas ->' ) ;
objektas1. ekranas ( ) ;
Sistema. išeiti . println ( 'Nukopijuotas objektas ->' ) ;
CopyObject object2 = ( Kopijuoti objektą ) objektas1. klonas ( ) ;
objektas2. ekranas ( ) ;
įvestis. Uždaryti ( ) ;
} }

Pagal aukščiau pateiktą kodo bloką atlikite toliau nurodytus veiksmus:

  • Prisiminkite aptartus būdus apibrėžiant klasę, nurodant narių kintamuosius, sukuriant parametrizuotą klasės konstruktorių (paskirstant perduodamas reikšmes) ir apibrėžiant atitinkamai reikšmių rodymo funkciją.
  • Dabar, „ pagrindinis () “, taip pat vartotojas įveda reikšmes ir perduoda jas sukurtam klasės objektui ir parodo jas per atitinkamą funkciją.
  • Po to „ klonas () “ įsigalioja metodas, susietas su jau sukurtu objektu, kad būtų sukurtas kopijavimo objektas.
  • Galiausiai, naudodami aptartą funkciją, parodykite nukopijuotą objekto turinį.

Išvestis

Šiame rezultate galima pastebėti, kad vartotojo įvesties reikšmės grąžinamos du kartus su identiškais rezultatais, užtikrinant, kad klasės objektas būtų tinkamai nukopijuotas.

Išvada

Objektą galima nukopijuoti „Java“ naudojant „ Kopijavimo konstruktorius ', arba ' klonas () “ metodas. Ankstesnis metodas kopijuoja objektą, imdamas jau sukurtą objektą kaip kopijavimo konstruktoriaus argumentą. Pastarasis metodas yra tiesiogiai susietas su sukurtu klasės objektu. Šis rašymas parodė, kaip nukopijuoti objektą Java.