반응형
SMALL
class Book {
private String title;
private String author;
public Book() {}
public Book(String title, String author) {
this.setTitle(title);
this.setAuthor(author);
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String toString() {
return title+", " + author;
}
}
public class ObjectCopy {
public static void main(String [] args) {
Book [] bookArr1 = new Book[3];
Book [] bookArr2 = new Book[3];
bookArr1[0] = new Book("제인에어1","샬롯 브론테");
bookArr1[1] = new Book("제인에어2","샬롯 브론테");
bookArr1[2] = new Book("제인에어3","샬롯 브론테");
bookArr2[0] = new Book();
bookArr2[1] = new Book();
bookArr2[2] = new Book();
// 객체의 깊은 복사, 서로 다른 주소를 가진다.
for(int i=0;i<bookArr1.length;i++) {
bookArr2[i].setTitle(bookArr1[i].getTitle());
bookArr2[i].setAuthor(bookArr1[i].getAuthor());
}
// bookArr1 배열을 바꿈. => 깊은 복사를 했기에 bookArr2 영향 X
bookArr1[0].setTitle("나목");
bookArr1[0].setAuthor("박완서");
for(int i=0;i<bookArr1.length;i++) {
System.out.println(bookArr1[i]);
}
System.out.println("*****************");
for(int i=0;i<bookArr2.length;i++) {
System.out.println(bookArr2[i]);
}
}
}
cf. do it 자바 프로그래밍 강의 (인프런)
반응형
LIST
'JAVA' 카테고리의 다른 글
[JAVA] 접근 제한자 (0) | 2022.03.24 |
---|---|
[JAVA] ArrayList 클래스 (0) | 2022.03.24 |
[JAVA] 객체 배열의 얕은 복사 (0) | 2022.03.23 |
[JAVA] 자바의 특징 및 장점 (0) | 2021.04.10 |
[Java] Collection(컬렉션) (0) | 2020.09.14 |
댓글