Jak zkopíruji objekt v Javě

Jak Zkopiruji Objekt V Jave



V Javě se zkopírování objektu uplatní tam, kde je potřeba využít již implementované funkce v kódu namísto jejich opětovného použití od začátku. Je také nápomocný, pokud jde o aktualizaci dat na základě obsažených záznamů. Tímto způsobem efektivně snižuje složitost kódu a využití zdrojů.

Tento článek demonstruje přístupy ke kopírování objektu v Javě.

Jak zkopíruji objekt v Javě?

Objekt lze v Javě zkopírovat pomocí následujících přístupů:







Získejte přístup ke všem třídám v rámci „ java.util ” balíček před přechodem na příklady:



import Jáva. util . *;

Přístup 1: Kopírování objektu v Javě pomocí „Copy Constructor“

' Kopírovat konstruktor ” vytvoří/definuje objekt odkazem na stejný objekt třídy vytvořený dříve.



Příklad
Následující příklad používá „Kopírovat konstruktor“ ke kopírování objektu:





veřejnost třída CopyObject {
int id ;
Tětiva město ;
CopyObject ( int id , Tětiva město ) {
tento . id = id ;
tento . město = město ; }
CopyObject ( CopyObject objekt ) {
tento . id = objekt. id ;
tento . město = objekt. město ; }
veřejnost prázdnota Zobrazit ( ) {
Systém. ven . println ( 'ID ->' + tento . id ) ;
Systém. ven . println ( 'Město ->' + tento . město ) ; }
veřejnost statický prázdnota hlavní ( Tětiva [ ] argumenty ) {
Vstup skeneru = Nový Skener ( Systém. v ) ;
Systém. ven . println ( 'Zadejte ID:' ) ;
int id = vstup. nextInt ( ) ;
Systém. ven . println ( 'Vstup do města:' ) ;
Tětiva město = vstup. další ( ) ;
CopyObject object1 = Nový CopyObject ( id , město ) ;
CopyObject object2 = Nový CopyObject ( objekt1 ) ;
Systém. ven . println ( 'Výchozí objekt ->' ) ;
objekt1. Zobrazit ( ) ;
Systém. ven . println ( 'Zkopírovaný objekt ->' ) ;
objekt2. Zobrazit ( ) ;
vstup. zavřít ( ) ;
} }

Ve výše uvedeném úryvku kódu:

  • Vytvořte třídu s názvem „ CopyObject “.
  • Zadejte uvedené členské proměnné třídy.
  • Poté vytvořte parametrizovaný konstruktor třídy, který alokuje předané hodnoty zadaným proměnným pomocí „ tento “.
  • Nyní vytvořte „ Kopírovat konstruktor ” který přebírá již vytvořený objekt typu třídy jako svůj parametr, který bude později předán jako argument.
  • Definujte také funkci „ Zobrazit() ”, který zobrazuje předané hodnoty objektů.
  • V ' hlavní() “, vytvořte objekt „Skener“, který umožní uživateli vstup přes „ System.in ' parametr.
  • Spojte také „ nextInt() ' a ' další() ” metody pro převzetí uživatelských vstupů typu celé číslo a řetězec.
  • Vytvořte objekt třídy pomocí „ Nový klíčové slovo a CopyObject() ” konstruktor, jehož argumenty jsou uživatelské vstupní hodnoty.
  • Vytvořte také objekt kopie, jehož argumentem je vytvořený objekt, abyste vrátili zkopírovaný obsah odkazem na konstruktor kopie třídy.
  • Nakonec vyvolejte „ Zobrazit() ” zobrazíte hodnoty zadané uživatelem a zavřete „Skener“.

Výstup



V tomto výstupu lze předpokládat, že je vytvořen a zobrazen objekt kopie.

Přístup 2: Kopírování objektu v Javě pomocí metody „clone()“.

' klon() “ metoda “ java.lang.Object ” třída vezme objekt jako parametr, vytvoří a poskytne jeho kopii. Tuto metodu lze implementovat ke kopírování objektu odkazem na již vytvořený objekt (který je třeba zkopírovat) a metodu „clone()“.

Syntax

objekt. klon ( )

Tato metoda poskytne kopii objektu a vyvolá „ CloneNotSupportedException “, pokud třída objektu neimplementuje/neaplikuje rozhraní „Cloneable“.

Příklad
Projděte si níže uvedené řádky kódu:

veřejnost třída CopyObject nářadí Klonovatelné {
int id ;
Tětiva město ;
CopyObject ( int id , Tětiva město ) {
tento . id = id ;
tento . město = město ;
}
veřejnost prázdnota Zobrazit ( ) {
Systém. ven . println ( 'ID ->' + tento . id ) ;
Systém. ven . println ( 'Město ->' + tento . město ) ;
}
veřejnost statický prázdnota hlavní ( Tětiva [ ] argumenty ) hází CloneNotSupportedException {
Vstup skeneru = Nový Skener ( Systém. v ) ;
Systém. ven . println ( 'Zadejte ID:' ) ;
int id = vstup. nextInt ( ) ;
Systém. ven . println ( 'Vstup do města:' ) ;
Tětiva město = vstup. další ( ) ;
CopyObject object1 = Nový CopyObject ( id , město ) ;
Systém. ven . println ( 'Výchozí objekt ->' ) ;
objekt1. Zobrazit ( ) ;
Systém. ven . println ( 'Zkopírovaný objekt ->' ) ;
CopyObject object2 = ( CopyObject ) objekt1. klon ( ) ;
objekt2. Zobrazit ( ) ;
vstup. zavřít ( ) ;
} }

Podle výše uvedeného bloku kódu proveďte níže uvedené kroky:

  • Připomeňme si probrané přístupy k definování třídy, specifikování členských proměnných, vytvoření parametrizovaného konstruktoru třídy (alokace předávaných hodnot) a definování funkce pro zobrazení hodnot, resp.
  • Nyní v ' hlavní() “, podobně uživatel zadá hodnoty a předá tyto hodnoty vytvořenému objektu třídy a zobrazí je pomocí odpovídající funkce.
  • Poté se „ klon() ” vstoupí v platnost metoda, která je spojena s již vytvořeným objektem pro vytvoření kopírovaného objektu.
  • Nakonec pomocí diskutované funkce zobrazte také obsah zkopírovaného objektu.

Výstup

V tomto výsledku lze pozorovat, že vstupní hodnoty uživatele jsou vráceny dvakrát s identickými výsledky, což zajišťuje, že objekt třídy je správně zkopírován.

Závěr

Objekt lze zkopírovat v Javě pomocí „ Kopírovat konstruktor ', nebo ' klon() “ metoda. První přístup zkopíruje objekt tak, že vezme již vytvořený objekt jako argument konstruktoru kopírování. Druhý přístup je spojen přímo s vytvořeným objektem třídy. Tento zápis demonstroval přístupy ke kopírování objektu v Javě.