반응형
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","샬롯 브론테");
// 얕은 복사, 객체의 주소가 복사 된다.
// 같은 주소를 가졌으므로, 같은 곳을 가리킨다.
System.arraycopy(bookArr1, 0, bookArr2, 0,3);
for(int i=0;i<bookArr2.length;i++) {
System.out.println(bookArr2[i]);
}
System.out.println("*****************");
// bookArr1 배열을 바꿨는데
bookArr1[0].setTitle("나목");
bookArr1[0].setAuthor("박완서");
// bookArr2 배열도 같이 바뀜
// 위에서 arrayCopy를 이용하여 주소가 복사 되었기 때문에
// 같은 곳을 가리키고 있어서. 하나가 바뀌자 다른 것도 같이 바뀜.
for(int i=0;i<bookArr2.length;i++) {
System.out.println(bookArr2[i]);
}
}
}
cf. do it 자바 프로그래밍 강의 (인프런)
반응형
LIST
'JAVA' 카테고리의 다른 글
[JAVA] ArrayList 클래스 (0) | 2022.03.24 |
---|---|
[JAVA] 객체 배열의 깊은 복사 (0) | 2022.03.23 |
[JAVA] 자바의 특징 및 장점 (0) | 2021.04.10 |
[Java] Collection(컬렉션) (0) | 2020.09.14 |
[Java] StringBuffer, StringBuilder (0) | 2020.09.12 |
댓글