Kuinka kopioin objektin Javassa

Kuinka Kopioin Objektin Javassa



Javassa objektin kopioiminen astuu voimaan silloin, kun koodissa jo toteutettuja toimintoja on hyödynnettävä sen sijaan, että niitä otettaisiin uudelleen käyttöön tyhjästä. Se on myös apuväline, kun on kyse tietojen päivittämisestä sisältämien tietueiden perusteella. Tällä tavalla se vähentää koodin monimutkaisuutta ja resurssien käyttöä tehokkaasti.

Tämä artikkeli esittelee lähestymistapoja objektin kopioimiseen Javassa.

Kuinka kopioin objektin Javassa?

Objekti voidaan kopioida Javassa seuraavilla tavoilla:







Pääsy kaikkiin luokkiin ' java.util ”-paketti ennen kuin siirryt esimerkkeihin:



tuonti java. util . *;

Lähestymistapa 1: Objektin kopioiminen Javassa 'Copy Constructor' -sovelluksella

' Kopioi rakentaja ” luo/määrittää objektin viittaamalla aiemmin luotuun samaan luokkaobjektiin.



Esimerkki
Seuraava esimerkki soveltaa 'Copy Constructor' -ohjelmaa objektin kopioimiseen:





julkinen luokkaa KopioiObject {
int id ;
merkkijono kaupunki ;
KopioiObject ( int id , merkkijono kaupunki ) {
Tämä . id = id ;
Tämä . kaupunki = kaupunki ; }
KopioiObject ( CopyObject-objekti ) {
Tämä . id = esine. id ;
Tämä . kaupunki = esine. kaupunki ; }
julkinen mitätön näyttö ( ) {
Järjestelmä. ulos . println ( 'ID ->' + Tämä . id ) ;
Järjestelmä. ulos . println ( 'Kaupunki ->' + Tämä . kaupunki ) ; }
julkinen staattinen mitätön pää ( merkkijono [ ] args ) {
Skannerin tulo = Uusi Skanneri ( Järjestelmä. sisään ) ;
Järjestelmä. ulos . println ( 'Anna tunnus:' ) ;
int id = syöttö. nextInt ( ) ;
Järjestelmä. ulos . println ( 'Syötä kaupunkiin:' ) ;
merkkijono kaupunki = syöttö. Seuraava ( ) ;
CopyObject object1 = Uusi KopioiObject ( id , kaupunki ) ;
CopyObject object2 = Uusi KopioiObject ( objekti1 ) ;
Järjestelmä. ulos . println ( 'Oletusobjekti ->' ) ;
objekti1. näyttö ( ) ;
Järjestelmä. ulos . println ( 'Kopioitu objekti ->' ) ;
objekti 2. näyttö ( ) ;
syöttö. kiinni ( ) ;
} }

Yllä olevassa koodinpätkässä:

  • Luo luokka nimeltä ' KopioiObject ”.
  • Määritä luokan ilmoitetut jäsenmuuttujat.
  • Luo sen jälkeen parametroitu luokkakonstruktori, joka varaa välitetyt arvot määritetyille muuttujille ' Tämä ”.
  • Luo nyt ' Kopioi rakentaja ', joka ottaa parametriksi jo luodun luokkatyyppisen objektin, joka välitetään myöhemmin argumenttina.
  • Määritä myös funktio ' näyttö() ', joka näyttää välitetyt objektiarvot.
  • ' pää() ' -menetelmää, tee 'Skanneri' -objekti, jotta käyttäjä voi syöttää ' System.in ” parametri.
  • Yhdistä myös ' nextInt() ' ja ' Seuraava() ' -menetelmiä ottaakseen käyttäjän syötteet kokonaisluvut ja merkkijonot.
  • Luo luokkaobjekti ' Uusi 'avainsana ja ' CopyObject() ” konstruktori, jonka argumentteina käyttäjä syöttää arvoja.
  • Luo myös kopioobjekti, jonka argumenttina on luotu objekti, joka palauttaa kopioidun sisällön viittaamalla luokan kopiokonstruktoriin.
  • Lopuksi kutsu ' näyttö() ' -toiminto näyttää käyttäjän syöttämät arvot ja sulkee 'Skannerin'.

Lähtö



Tässä tulosteessa voidaan olettaa, että kopioobjekti luodaan ja näytetään vastaavasti.

Lähestymistapa 2: Objektin kopioiminen Javassa 'clone()'-menetelmällä

' klooni() 'menetelmä' java.lang.Object ” luokka ottaa objektin parametriksi, luo ja antaa siitä kopion. Tämä menetelmä voidaan toteuttaa kopioimaan objekti viittaamalla jo luotuun objektiin (joka on kopioitava) ja 'clone()'-menetelmään.

Syntaksi

esine. klooni ( )

Tämä menetelmä antaa kopion objektista ja heittää ' CloneNotSupportedException ', jos objektin luokka ei toteuta / käytä 'Cloneable' -rajapintaa.

Esimerkki
Käy läpi alla olevat koodirivit:

julkinen luokkaa KopioiObject toteuttaa Kloonattavissa {
int id ;
merkkijono kaupunki ;
KopioiObject ( int id , merkkijono kaupunki ) {
Tämä . id = id ;
Tämä . kaupunki = kaupunki ;
}
julkinen mitätön näyttö ( ) {
Järjestelmä. ulos . println ( 'ID ->' + Tämä . id ) ;
Järjestelmä. ulos . println ( 'Kaupunki ->' + Tämä . kaupunki ) ;
}
julkinen staattinen mitätön pää ( merkkijono [ ] args ) heittoja CloneNotSupportedException {
Skannerin tulo = Uusi Skanneri ( Järjestelmä. sisään ) ;
Järjestelmä. ulos . println ( 'Anna tunnus:' ) ;
int id = syöttö. nextInt ( ) ;
Järjestelmä. ulos . println ( 'Syötä kaupunkiin:' ) ;
merkkijono kaupunki = syöttö. Seuraava ( ) ;
CopyObject object1 = Uusi KopioiObject ( id , kaupunki ) ;
Järjestelmä. ulos . println ( 'Oletusobjekti ->' ) ;
objekti1. näyttö ( ) ;
Järjestelmä. ulos . println ( 'Kopioitu objekti ->' ) ;
CopyObject object2 = ( KopioiObject ) objekti1. klooni ( ) ;
objekti 2. näyttö ( ) ;
syöttö. kiinni ( ) ;
} }

Suorita alla mainitut vaiheet yllä olevan koodilohkon mukaisesti:

  • Palaa mieleen käsitellyt lähestymistavat luokan määrittämiseen, jäsenmuuttujien määrittämiseen, parametroidun luokkakonstruktorin luomiseen (syötettujen arvojen allokointiin) ja arvojen näyttämiseen tarkoitetun funktion määrittämiseen.
  • Nyt sisällä ' pää() Vastaavasti käyttäjä syöttää arvot ja välittää nämä arvot luodulle luokkaobjektille ja näyttää ne vastaavan funktion kautta.
  • Sen jälkeen ' klooni() ” -menetelmä tulee voimaan, joka liittyy jo luotuun objektiin kopioobjektin luomiseksi.
  • Näytä lopuksi myös kopioitu objektin sisältö käsitellyn toiminnon kautta.

Lähtö

Tässä tuloksessa voidaan havaita, että käyttäjän syöttämät arvot palautetaan kahdesti identtisillä tuloksilla, mikä varmistaa, että luokkaobjekti kopioidaan asianmukaisesti.

Johtopäätös

Objekti voidaan kopioida Javassa käyttämällä ' Kopioi rakentaja ', tai ' klooni() ”menetelmä. Edellinen lähestymistapa kopioi objektin ottamalla jo luodun objektin kopiokonstruktorin argumentiksi. Jälkimmäinen lähestymistapa liittyy suoraan luotuun luokkaobjektiin. Tämä kirjoitus osoitti lähestymistavat objektin kopioimiseen Javassa.