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