clone
-
[JAVA] 깊은복사 (clone , 복사 생성자)OOP & JAVA 2021. 12. 18. 22:22
1. 깊은 복사 vs 얕은복사 얕은 복사는 단순히 객체를 복사하는 것을 의미한다. 객체 자체를 복사했기때문에 모체인 p의 맴버변수가 수정되면 p2의 맴버 변수값 또한 바뀌게 된다. p2 는 그냥 힙에 있는 p의 값을 가리키고 있을 뿐이다. Person p = new Person(); Person p2 = p; p.setAge = 10; println(p2.getAge()) // 10 객체가 아닌 원시타입의 변수는 다음 처럼 대입하더라도 그 메모리가 힙에 생성되는 것이 아니기 때문에 자연스럽게 깊은 복사가 이루어진다. 그러나 객체나 배열에 대해서 독립적으로 복사해서 사용하는 깊은 복사를 사용하려면 뒤에 나올 두 방법을 사용하여 구현할 수 있다. 2. clone 을 통한 깊은복사 구현 clone 메서드를 오..