Jak skopiować obiekt w Javie

Jak Skopiowac Obiekt W Javie



W Javie kopiowanie obiektu ma miejsce tam, gdzie istnieje potrzeba wykorzystania już zaimplementowanych w kodzie funkcjonalności zamiast stosowania ich od nowa. Jest również pomocny przy aktualizacji danych na podstawie zawartych rekordów. W ten sposób zmniejsza złożoność kodu i efektywnie wykorzystuje zasoby.

W tym artykule zademonstrujemy podejścia do kopiowania obiektu w Javie.

Jak skopiować obiekt w Javie?

Obiekt można skopiować w Javie przy użyciu następujących metod:







Uzyskaj dostęp do wszystkich klas w ramach „ java.util ” przed przejściem do przykładów:



import Jawa. utylizacja . *;

Podejście 1: Kopiowanie obiektu w Javie przy użyciu „Konstruktora kopiowania”

Kopiuj Konstruktor ” tworzy/definiuje obiekt, odwołując się do tego samego obiektu klasy utworzonego wcześniej.



Przykład
Poniższy przykład stosuje „Konstruktor kopiowania” do kopiowania obiektu:





publiczny klasa KopiujObiekt {
int ID ;
Strunowy miasto ;
KopiujObiekt ( int ID , Strunowy miasto ) {
Ten . ID = ID ;
Ten . miasto = miasto ; }
KopiujObiekt ( Obiekt CopyObject ) {
Ten . ID = obiekt. ID ;
Ten . miasto = obiekt. miasto ; }
publiczny próżnia wyświetlacz ( ) {
System. na zewnątrz . println ( „Identyfikator ->” + Ten . ID ) ;
System. na zewnątrz . println ( „Miasto ->” + Ten . miasto ) ; }
publiczny statyczny próżnia główny ( Strunowy [ ] argumenty ) {
Wejście skanera = nowy Skaner ( System. W ) ;
System. na zewnątrz . println ( 'Wprowadź identyfikator: ' ) ;
int ID = wejście. następnyInt ( ) ;
System. na zewnątrz . println ( 'Wpisz miasto: ' ) ;
Strunowy miasto = wejście. Następny ( ) ;
Obiekt CopyObject1 = nowy KopiujObiekt ( ID , miasto ) ;
Obiekt CopyObject2 = nowy KopiujObiekt ( obiekt1 ) ;
System. na zewnątrz . println ( „Obiekt domyślny ->” ) ;
obiekt1. wyświetlacz ( ) ;
System. na zewnątrz . println ( „Skopiowany obiekt ->” ) ;
obiekt2. wyświetlacz ( ) ;
wejście. zamknąć ( ) ;
} }

W powyższym fragmencie kodu:

  • Utwórz klasę o nazwie „ KopiujObiekt ”.
  • Określ podane zmienne składowe klasy.
  • Następnie utwórz sparametryzowany konstruktor klasy, który przydziela przekazane wartości określonym zmiennym za pomocą „ Ten ”.
  • Teraz utwórz „ Kopiuj Konstruktor ”, który jako parametr przyjmuje już utworzony obiekt klasy, który zostanie później przekazany jako argument.
  • Zdefiniuj również funkcję „ wyświetlacz() ”, który wyświetla przekazane wartości obiektów.
  • W ' główny() ”, utwórz obiekt „Skaner”, aby umożliwić użytkownikowi wprowadzanie danych za pośrednictwem „ System.in parametr.
  • Skojarz także „ następnyInt() ' I ' Następny() ” do pobierania odpowiednio liczb całkowitych i ciągów danych wejściowych użytkownika.
  • Utwórz obiekt klasy za pomocą „ nowy ” słowo kluczowe i „ KopiujObiekt() ” konstruktor mający jako argumenty wartości wprowadzone przez użytkownika.
  • Utwórz również obiekt kopiujący, którego argumentem jest utworzony obiekt, aby zwrócić skopiowaną zawartość, odwołując się do konstruktora kopiującego klasy.
  • Na koniec wywołaj „ wyświetlacz() ”, aby wyświetlić wprowadzone wartości wprowadzone przez użytkownika i zamknąć „Skaner”.

Wyjście



W tym wyniku można zasugerować, że kopiowany obiekt jest tworzony i odpowiednio wyświetlany.

Podejście 2: Kopiowanie obiektu w Javie metodą „clone()”.

klon() „metoda” java.lang.Obiekt ” przyjmuje obiekt jako parametr, tworzy i przekazuje jego kopię. Tę metodę można zaimplementować w celu skopiowania obiektu, odwołując się do już utworzonego obiektu (który należy skopiować) i metody „clone()”.

Składnia

obiekt. klon ( )

Ta metoda daje kopię obiektu i rzuca „ CloneNotSupportedException ”, jeśli klasa obiektu nie implementuje/nie stosuje interfejsu „Cloneable”.

Przykład
Przejdź przez poniższe linie kodu:

publiczny klasa KopiujObiekt przybory Możliwość klonowania {
int ID ;
Strunowy miasto ;
KopiujObiekt ( int ID , Strunowy miasto ) {
Ten . ID = ID ;
Ten . miasto = miasto ;
}
publiczny próżnia wyświetlacz ( ) {
System. na zewnątrz . println ( „Identyfikator ->” + Ten . ID ) ;
System. na zewnątrz . println ( „Miasto ->” + Ten . miasto ) ;
}
publiczny statyczny próżnia główny ( Strunowy [ ] argumenty ) rzuca CloneNotSupportedException {
Wejście skanera = nowy Skaner ( System. W ) ;
System. na zewnątrz . println ( 'Wprowadź identyfikator: ' ) ;
int ID = wejście. następnyInt ( ) ;
System. na zewnątrz . println ( 'Wpisz miasto: ' ) ;
Strunowy miasto = wejście. Następny ( ) ;
Obiekt CopyObject1 = nowy KopiujObiekt ( ID , miasto ) ;
System. na zewnątrz . println ( „Obiekt domyślny ->” ) ;
obiekt1. wyświetlacz ( ) ;
System. na zewnątrz . println ( „Skopiowany obiekt ->” ) ;
Obiekt CopyObject2 = ( KopiujObiekt ) obiekt1. klon ( ) ;
obiekt2. wyświetlacz ( ) ;
wejście. zamknąć ( ) ;
} }

Zgodnie z powyższym blokiem kodu wykonaj poniższe kroki:

  • Przypomnij sobie odpowiednio omówione podejścia do definiowania klasy, określania zmiennych składowych, tworzenia sparametryzowanego konstruktora klasy (przydzielanie przekazywanych wartości) i definiowania funkcji do wyświetlania wartości.
  • Teraz w ' główny() ”, podobnie, użytkownik wprowadza wartości i przekazuje je do utworzonego obiektu klasy i wyświetla je za pomocą odpowiedniej funkcji.
  • Następnie „ klon() ” wchodzi w życie metoda powiązana z już utworzonym obiektem w celu utworzenia obiektu kopii.
  • Na koniec wyświetl również zawartość skopiowanego obiektu za pomocą omawianej funkcji.

Wyjście

W wyniku tym można zaobserwować, że wartości wprowadzone przez użytkownika są zwracane dwukrotnie z identycznymi wynikami, zapewniając prawidłowe skopiowanie obiektu klasy.

Wniosek

Obiekt można skopiować w Javie za pomocą „ Kopiuj Konstruktor ', albo ' klon() ' metoda. Pierwsze podejście kopiuje obiekt, przyjmując już utworzony obiekt jako argument konstruktora kopiującego. To drugie podejście wiąże się bezpośrednio z tworzonym obiektem klasy. Ten artykuł zademonstrował podejście do kopiowania obiektu w Javie.