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