Как скопировать объект в Java

Kak Skopirovat Ob Ekt V Java



В Java копирование объекта вступает в силу там, где необходимо использовать уже реализованные в коде функциональные возможности, а не применять их заново с нуля. Кроме того, это полезно, когда дело доходит до обновления данных на основе содержащихся записей. Таким образом, он снижает сложность кода и эффективно использует ресурсы.

В этой статье будут продемонстрированы подходы к копированию объекта в Java.

Как скопировать объект в Java?

Объект можно скопировать в Java, используя следующие подходы:







Доступ ко всем классам в разделе « java.util », прежде чем переходить к примерам:



Импортировать Джава. использовать . *;

Подход 1: Копирование объекта в Java с помощью «Конструктора копирования»

Копировать конструктор ” создает/определяет объект, ссылаясь на тот же объект класса, созданный ранее.



Пример
В следующем примере «Конструктор копирования» применяется для копирования объекта:





публичный сорт КопироватьОбъект {
инт идентификатор ;
Нить город ;
КопироватьОбъект ( инт идентификатор , Нить город ) {
этот . идентификатор '=' идентификатор ;
этот . город '=' город ; }
КопироватьОбъект ( Объект CopyObject ) {
этот . идентификатор '=' объект. идентификатор ;
этот . город '=' объект. город ; }
публичный пустота отображать ( ) {
Система. вне . печать ( 'ИД ->' + этот . идентификатор ) ;
Система. вне . печать ( 'Город ->' + этот . город ) ; }
публичный статический пустота основной ( Нить [ ] аргументы ) {
Вход сканера '=' новый Сканер ( Система. в ) ;
Система. вне . печать ( 'Введите идентификатор:' ) ;
инт идентификатор '=' вход. следующийInt ( ) ;
Система. вне . печать ( «Войди в город:» ) ;
Нить город '=' вход. следующий ( ) ;
Объект CopyObject1 '=' новый КопироватьОбъект ( идентификатор , город ) ;
Объект CopyObject2 '=' новый КопироватьОбъект ( объект1 ) ;
Система. вне . печать ( 'Объект по умолчанию ->' ) ;
объект1. отображать ( ) ;
Система. вне . печать ( 'Скопированный объект ->' ) ;
объект2. отображать ( ) ;
вход. закрывать ( ) ;
} }

В приведенном выше фрагменте кода:

  • Создайте класс с именем « КопироватьОбъект ».
  • Укажите заявленные переменные-члены класса.
  • После этого создайте параметризованный конструктор класса, который выделяет переданные значения указанным переменным через « этот ».
  • Теперь создайте « Копировать конструктор », который принимает уже созданный объект типа класса в качестве параметра, который будет передан в качестве аргумента позже.
  • Кроме того, определите функцию « отображать() », который отображает переданные значения объекта.
  • В ' основной() », создайте объект «Сканер», чтобы пользователь мог вводить данные через « System.in параметр.
  • Кроме того, свяжите « следующийInt() ' и ' следующий() ” для ввода целочисленных и строковых пользовательских входных данных соответственно.
  • Создайте объект класса через « новый ключевое слово ' и ' КопироватьОбъект() », имеющий в качестве аргументов пользовательские входные значения.
  • Кроме того, создайте объект копирования, имеющий созданный объект в качестве аргумента, чтобы вернуть скопированное содержимое, обратившись к конструктору копирования класса.
  • Наконец, вызовите « отображать() », чтобы отобразить переданные пользователем значения ввода и закрыть «Сканер».

Выход



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

Подход 2: копирование объекта в Java с помощью метода «clone()»

клон() метод « java.lang.Объект ” класс принимает объект в качестве параметра, создает и отдает его копию. Этот метод можно реализовать для копирования объекта, обратившись к уже созданному объекту (который необходимо скопировать) и методу «clone()».

Синтаксис

объект. клон ( )

Этот метод дает копию объекта и выдает « CloneNotSupportedException », если класс объекта не реализует/применяет интерфейс «Cloneable».

Пример
Пройдите следующие строки кода:

публичный сорт КопироватьОбъект реализует Клонируемый {
инт идентификатор ;
Нить город ;
КопироватьОбъект ( инт идентификатор , Нить город ) {
этот . идентификатор '=' идентификатор ;
этот . город '=' город ;
}
публичный пустота отображать ( ) {
Система. вне . печать ( 'ИД ->' + этот . идентификатор ) ;
Система. вне . печать ( 'Город ->' + этот . город ) ;
}
публичный статический пустота основной ( Нить [ ] аргументы ) бросает CloneNotSupportedException {
Вход сканера '=' новый Сканер ( Система. в ) ;
Система. вне . печать ( 'Введите идентификатор:' ) ;
инт идентификатор '=' вход. следующийInt ( ) ;
Система. вне . печать ( «Войди в город:» ) ;
Нить город '=' вход. следующий ( ) ;
Объект CopyObject1 '=' новый КопироватьОбъект ( идентификатор , город ) ;
Система. вне . печать ( 'Объект по умолчанию ->' ) ;
объект1. отображать ( ) ;
Система. вне . печать ( 'Скопированный объект ->' ) ;
Объект CopyObject2 '=' ( КопироватьОбъект ) объект1. клон ( ) ;
объект2. отображать ( ) ;
вход. закрывать ( ) ;
} }

В соответствии с приведенным выше блоком кода выполните следующие шаги:

  • Вспомните обсуждавшиеся подходы к определению класса, указанию переменных-членов, созданию параметризованного конструктора класса (размещению переданных значений) и определению функции для отображения значений соответственно.
  • Сейчас в ' основной() », аналогичным образом пользователь вводит значения и передает эти значения в созданный объект класса и отображает их с помощью соответствующей функции.
  • После этого « клон() ” вступает в силу метод, связанный с уже созданным объектом для создания объекта-копии.
  • Наконец, отобразите содержимое скопированного объекта также с помощью обсуждаемой функции.

Выход

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

Заключение

Объект может быть скопирован в Java с помощью « Копировать конструктор ', или ' клон() метод. Первый подход копирует объект, принимая уже созданный объект в качестве аргумента конструктора копирования. Последний подход связан непосредственно с созданным объектом класса. В этой статье продемонстрированы подходы к копированию объекта в Java.