참조변수복사하면 얕은 복사가 된다는점 주의할것
Book[] library = new Book[3];
Book[] copylibrary = new Book[3];
library[0] = new Book("밀레니엄시리즈1");
library[1] = new Book("밀레니엄시리즈2");
library[2] = new Book("밀레니엄시리즈3");
System.arraycopy(library, 0, copylibrary, 0, library.length);
//참조변수가 같은 대상을 가리키므로 원본의 값도 변경된다
copylibrary[0].SetTitle("해리포터");
for(Book book : library)
{
System.out.println(book);
}
for(Book book : copylibrary)
{
System.out.println(book);
}
copylibrary 배열의 참조변수들에 new로 각각 할당해줘야 깊은 복사가 된다
Book[] library = new Book[3];
Book[] copylibrary = new Book[3];
library[0] = new Book("밀레니엄시리즈1");
library[1] = new Book("밀레니엄시리즈2");
library[2] = new Book("밀레니엄시리즈3");
copylibrary[0] = new Book("밀레니엄시리즈1");
copylibrary[1] = new Book("밀레니엄시리즈2");
copylibrary[2] = new Book("밀레니엄시리즈3");
//깊은복사가 되어서 원본에 영향을 주지 않는다
copylibrary[0].SetTitle("해리포터");
for(Book book : library)
{
System.out.println(book);
}
for(Book book : copylibrary)
{
System.out.println(book);
}