Как да копирам обект в Java

Kak Da Kopiram Obekt V Java



В Java копирането на обект влиза в сила, когато има нужда да се използват вече внедрените функционалности в кода, вместо да се прилагат отново от нулата. Освен това е помощно, когато става въпрос за актуализиране на данните въз основа на съдържащите се записи. По този начин се намалява сложността на кода и ефективното използване на ресурсите.

Тази статия ще демонстрира подходите за копиране на обект в Java.

Как да копирам обект в Java?

Обект може да бъде копиран в Java, като се използват следните подходи:







Достъп до всички класове в рамките на „ java.util ”, преди да преминете към примерите:



импортиране java. util . *;

Подход 1: Копиране на обект в Java с помощта на „Конструктор за копиране“

Конструктор за копиране ” създава/дефинира обект, като се позовава на същия клас обект, създаден преди това.



Пример
Следният пример прилага „Конструктора за копиране“ за копиране на обект:





публичен клас CopyObject {
вътр документ за самоличност ;
низ град ;
CopyObject ( вътр документ за самоличност , низ град ) {
това . документ за самоличност = документ за самоличност ;
това . град = град ; }
CopyObject ( CopyObject обект ) {
това . документ за самоличност = обект. документ за самоличност ;
това . град = обект. град ; }
публичен невалиден дисплей ( ) {
Система. навън . println ( 'ID ->' + това . документ за самоличност ) ;
Система. навън . println ( 'Град ->' + това . град ) ; }
публичен статичен невалиден основен ( низ [ ] аргументи ) {
Вход на скенер = нов Скенер ( Система. в ) ;
Система. навън . println ( „Въведете идентификатора:“ ) ;
вътр документ за самоличност = вход. nextInt ( ) ;
Система. навън . println ( „Влез в града:“ ) ;
низ град = вход. следващия ( ) ;
CopyObject object1 = нов CopyObject ( документ за самоличност , град ) ;
CopyObject object2 = нов CopyObject ( обект1 ) ;
Система. навън . println ( 'Обект по подразбиране ->' ) ;
обект1. дисплей ( ) ;
Система. навън . println ( „Копиран обект ->“ ) ;
обект2. дисплей ( ) ;
вход. близо ( ) ;
} }

В горния кодов фрагмент:

  • Създайте клас с име „ CopyObject ”.
  • Посочете посочените членски променливи на класа.
  • След това създайте параметризиран конструктор на клас, който разпределя предадените стойности към посочените променливи чрез „ това ”.
  • Сега създайте „ Конструктор за копиране ”, който приема вече създаден обект от тип клас като свой параметър, който ще бъде предаден като аргумент по-късно.
  • Също така дефинирайте функцията „ дисплей () ”, който показва предадените стойности на обекта.
  • в „ основен () ', направете обект 'Scanner', за да позволите въвеждане на потребителя чрез ' System.in ” параметър.
  • Също така асоциирайте „ nextInt() ' и ' следващия() ” методи за приемане на целочислени и низови потребителски входове, съответно.
  • Създайте клас обект чрез „ нов “ ключова дума и „ CopyObject() ” конструктор, който има въведените от потребителя стойности като свои аргументи.
  • Също така създайте обект за копиране, който има създадения обект като аргумент, за да върне копираното съдържание, като се позовава на конструктора за копиране на класа.
  • И накрая, извикайте „ дисплей () ” за показване на въведените от потребителя стойности и затваряне на „Скенер”.

Изход



В този изход може да се подразбира, че е създаден и съответно показан обект за копиране.

Подход 2: Копиране на обект в Java чрез метода „clone()“.

клонинг() ' метод на ' java.lang.Object ” класът приема обект като параметър, създава и дава негово копие. Този метод може да бъде приложен за копиране на обект чрез позоваване на вече създадения обект (който трябва да бъде копиран) и метода „clone()“.

Синтаксис

обект. клонинг ( )

Този метод дава копие на обекта и хвърля „ CloneNotSupportedException ”, ако класът на обекта не изпълнява/прилага интерфейса „Cloneable”.

Пример
Преминете през редовете с код по-долу:

публичен клас CopyObject инструменти Може да се клонира {
вътр документ за самоличност ;
низ град ;
CopyObject ( вътр документ за самоличност , низ град ) {
това . документ за самоличност = документ за самоличност ;
това . град = град ;
}
публичен невалиден дисплей ( ) {
Система. навън . println ( 'ID ->' + това . документ за самоличност ) ;
Система. навън . println ( 'Град ->' + това . град ) ;
}
публичен статичен невалиден основен ( низ [ ] аргументи ) хвърля CloneNotSupportedException {
Вход на скенер = нов Скенер ( Система. в ) ;
Система. навън . println ( „Въведете идентификатора:“ ) ;
вътр документ за самоличност = вход. nextInt ( ) ;
Система. навън . println ( „Влез в града:“ ) ;
низ град = вход. следващия ( ) ;
CopyObject object1 = нов CopyObject ( документ за самоличност , град ) ;
Система. навън . println ( 'Обект по подразбиране ->' ) ;
обект1. дисплей ( ) ;
Система. навън . println ( „Копиран обект ->“ ) ;
CopyObject object2 = ( CopyObject ) обект1. клонинг ( ) ;
обект2. дисплей ( ) ;
вход. близо ( ) ;
} }

Съгласно горния кодов блок, изпълнете следните стъпки:

  • Спомнете си обсъжданите подходи за дефиниране на клас, указване на променливите член, създаване на параметризиран конструктор на клас (разпределяне на предадените стойности) и дефиниране на функция за показване на стойностите, съответно.
  • Сега в ' основен () ”, по подобен начин потребителят въвежда стойностите и предава тези стойности на създадения обект на клас и ги показва чрез съответната функция.
  • След това „ клонинг() ” влиза в сила методът, който е свързан с вече създадения обект, за да се създаде обект за копиране.
  • И накрая, покажете и съдържанието на копирания обект чрез обсъжданата функция.

Изход

В този резултат може да се наблюдава, че въведените от потребителя стойности се връщат два пъти с идентични резултати, като се гарантира, че обектът на класа е копиран по подходящ начин.

Заключение

Обект може да бъде копиран в Java с помощта на „ Конструктор за копиране ', или ' клонинг() ” метод. Първият подход копира обекта, като взема вече създадения обект като аргумент на конструктора за копиране. Последният подход се свързва директно със създадения клас обект. Това описание демонстрира подходите за копиране на обект в Java.