최코딩의 개발
#4화 [JAVA] 깊은배열복사 이해하기 본문
728x90
오늘은 지난번에 공부했던 내용을 다시 복습하는 날이다.
Q. 배열을 이용하여 책의 이름 저자를 구하고 library1 의 내용을 library2로 옮겨라(주소 옮기기X)
1. 다음과 같이 클래스를 만들어준다.
1. 책의 저자, 이름을 선언한다.
2. 생성자 오버로딩을 설정한다.
3. 책의 이름과 저자를 반환 및 설정을 해주도록 get과 set 메서드 함수를 이용한다.
1. 위 사진은 기본적인 책의 이름과 저자를 배열로 설정해준거다.
결과는 아래와 같다.
1. System.arraycopy함수를 써 library1의 내용을 library2로 복사한다.
2. 하지만 문제점이 생긴다. library1의 주소가 복사되어 library1의 값을 변경시켜도 둘이 똑같은 결과가 나오게 된다.
결과는 아래사진과 같이 나온다.
1. 먼저 System.arraycopy를 사용하면 안된다.
2. library2의 배열을 설정해주고 각각 디폴트 생성자를 설정해준다.
3. 위와 같은 결과를 방지하기 위해 library1의 값을 get을 통해 불러오고 그 값을 set을 이용해 library2로 설정해 둔다.
4. 결과는 다음과 같다.
728x90
'JAVA > JAVA 프로젝트' 카테고리의 다른 글
#6화 [JAVA] 추상메서드를 이용한 게임 구현 (2) | 2022.09.23 |
---|---|
#5화 [JAVA] 고객 관리 프로그램 (2) | 2022.09.17 |
#3화 [JAVA] ArrayList & 클래스 세계관 (0) | 2022.09.05 |
#2화 [JAVA] 협력을 하자 (1) | 2022.09.01 |
#1화 [JAVA] 클래스 구현해서 학생 정보 출력하기 (0) | 2022.08.26 |