Java에서 개체를 복사하는 방법

Java Eseo Gaecheleul Bogsahaneun Bangbeob



Java에서 개체 복사는 코드에서 이미 구현된 기능을 처음부터 다시 적용하는 대신 활용해야 하는 경우에 적용됩니다. 또한 포함된 레코드를 기반으로 데이터를 업데이트할 때 도움이 됩니다. 이러한 방식으로 코드 복잡성과 리소스 활용도를 효과적으로 줄입니다.

이 기사에서는 Java에서 객체를 복사하는 방법을 보여줍니다.

Java에서 개체를 어떻게 복사합니까?

다음 접근 방식을 사용하여 객체를 Java로 복사할 수 있습니다.







' 내의 모든 클래스에 액세스 자바.유틸 예제로 이동하기 전에 패키지:



수입 자바. 유틸리티 . *;

접근법 1: '복사 생성자'를 사용하여 Java에서 개체 복사

복사 생성자 ”는 이전에 생성한 동일한 클래스 객체를 참조하여 객체를 생성/정의합니다.




다음 예제에서는 '복사 생성자'를 적용하여 개체를 복사합니다.





공공의 수업 CopyObject {
정수 ID ;
도시 ;
CopyObject ( 정수 ID , 도시 ) {
이것 . ID = ID ;
이것 . 도시 = 도시 ; }
CopyObject ( CopyObject 객체 ) {
이것 . ID = 물체. ID ;
이것 . 도시 = 물체. 도시 ; }
공공의 무효의 표시하다 ( ) {
체계. 밖으로 . 프린트 ( '아이디 ->' + 이것 . ID ) ;
체계. 밖으로 . 프린트 ( '도시 ->' + 이것 . 도시 ) ; }
공공의 공전 무효의 기본 ( [ ] 인수 ) {
스캐너 입력 = 새로운 스캐너 ( 체계. ~에 ) ;
체계. 밖으로 . 프린트 ( 'ID를 입력하세요: ' ) ;
정수 ID = 입력. 다음 Int ( ) ;
체계. 밖으로 . 프린트 ( '도시 입력: ' ) ;
도시 = 입력. 다음 ( ) ;
CopyObject 객체1 = 새로운 CopyObject ( ID , 도시 ) ;
CopyObject 객체2 = 새로운 CopyObject ( 객체1 ) ;
체계. 밖으로 . 프린트 ( '기본 개체 ->' ) ;
객체1. 표시하다 ( ) ;
체계. 밖으로 . 프린트 ( '복사된 개체 ->' ) ;
객체2. 표시하다 ( ) ;
입력. 닫다 ( ) ;
} }

위의 코드 조각에서:

  • '라는 이름의 클래스를 만듭니다. CopyObject '.
  • 클래스의 명시된 멤버 변수를 지정합니다.
  • 그런 다음 '를 통해 전달된 값을 지정된 변수에 할당하는 매개변수화된 클래스 생성자를 만듭니다. 이것 '.
  • 이제 ' 복사 생성자 ”는 이미 생성된 클래스 유형 객체를 매개변수로 사용하여 나중에 인수로 전달됩니다.
  • 또한 ' 표시하다() ” 전달된 개체 값을 표시합니다.
  • '에서 기본() ” 메서드를 통해 사용자가 입력할 수 있도록 “스캐너” 개체를 만듭니다. 시스템.인 ” 매개변수.
  • 또한 ' 넥스트인트() ' 그리고 ' 다음() ” 메서드를 사용하여 각각 정수 및 문자열 사용자 입력을 받습니다.
  • '를 통해 클래스 개체를 만듭니다. 새로운 ' 키워드와 ' 복사 객체() ” 사용자 입력 값을 인수로 갖는 생성자.
  • 또한 클래스 복사 생성자를 참조하여 복사된 내용을 반환하기 위해 생성된 객체를 인수로 하는 복사 객체를 생성합니다.
  • 마지막으로 ' 표시하다() ” 기능을 사용하여 전달된 사용자 입력 값을 표시하고 “스캐너”를 닫습니다.

산출

이 출력에서 ​​복사 개체가 생성되고 그에 따라 표시됨을 암시할 수 있습니다.

접근 방식 2: 'clone()' 메서드를 통해 Java에서 개체 복사

클론() ”의 방법 java.lang.객체 ” 클래스는 객체를 매개변수로 받아 객체를 생성하고 복사본을 제공합니다. 이 메서드는 이미 생성된(복사해야 하는) 객체와 'clone()' 메서드를 참조하여 객체를 복사하도록 구현할 수 있습니다.

통사론

물체. 클론 ( )

이 메서드는 개체의 복사본을 제공하고 ' CloneNotSupportedException ” 개체의 클래스가 'Cloneable' 인터페이스를 구현/적용하지 않는 경우.


아래 코드 줄을 살펴보십시오.

공공의 수업 CopyObject 구현하다 복제 가능 {
정수 ID ;
도시 ;
CopyObject ( 정수 ID , 도시 ) {
이것 . ID = ID ;
이것 . 도시 = 도시 ;
}
공공의 무효의 표시하다 ( ) {
체계. 밖으로 . 프린트 ( '아이디 ->' + 이것 . ID ) ;
체계. 밖으로 . 프린트 ( '도시 ->' + 이것 . 도시 ) ;
}
공공의 공전 무효의 기본 ( [ ] 인수 ) 던진다 CloneNotSupportedException {
스캐너 입력 = 새로운 스캐너 ( 체계. ~에 ) ;
체계. 밖으로 . 프린트 ( 'ID를 입력하세요: ' ) ;
정수 ID = 입력. 다음 Int ( ) ;
체계. 밖으로 . 프린트 ( '도시 입력: ' ) ;
도시 = 입력. 다음 ( ) ;
CopyObject 객체1 = 새로운 CopyObject ( ID , 도시 ) ;
체계. 밖으로 . 프린트 ( '기본 개체 ->' ) ;
객체1. 표시하다 ( ) ;
체계. 밖으로 . 프린트 ( '복사된 개체 ->' ) ;
CopyObject 객체2 = ( CopyObject ) 객체1. 클론 ( ) ;
객체2. 표시하다 ( ) ;
입력. 닫다 ( ) ;
} }

위의 코드 블록에 따라 아래 설명된 단계를 수행합니다.

  • 클래스 정의, 멤버 변수 지정, 매개변수화된 클래스 생성자 생성(전달된 값 할당) 및 값 표시를 위한 함수 정의에 대해 논의된 접근법을 각각 상기하십시오.
  • 지금에 ' 기본() ”, 마찬가지로 사용자가 값을 입력하고 이 값을 생성된 클래스 객체에 전달하고 해당 함수를 통해 표시합니다.
  • 그 후, “ 클론() ” 메서드는 이미 생성된 객체와 연결되어 복사 객체를 생성하는 효과가 있습니다.
  • 마지막으로 논의된 기능을 통해 복사된 개체 내용도 표시합니다.

산출

이 결과에서 사용자 입력 값이 동일한 결과로 두 번 반환되어 클래스 개체가 적절하게 복사되었음을 확인할 수 있습니다.

결론

'를 사용하여 Java에서 개체를 복사할 수 있습니다. 복사 생성자 ', 아니면 그 ' 클론() ' 방법. 전자의 접근 방식은 이미 생성된 객체를 복사 생성자 인수로 사용하여 객체를 복사합니다. 후자의 접근 방식은 생성된 클래스 개체와 직접 연결됩니다. 이 글은 Java에서 개체를 복사하는 접근 방식을 보여줍니다.