В этой статье будут продемонстрированы подходы к копированию объекта в 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.