CH6-38~41 변수 초기화, 멤버변수의 초기화

[자바의 정석 - 기초편] ch6-38~41 변수의초기화, 멤버변수의 초기화

를 다루기전에 정석책에 나와있는 생성자 이용한 인스턴스 복사를 보자.

내용은 간단하다. 생성자의 매개변수로 다른 인스턴스의 참조변수를 이용하면, 해당 참조변수가 참조하는 인스턴스의 내용을 그대로 복사할 수 있다는 내용임.

가령

Car(**Car c**) {
				color = c.color;
				gearType = c.gearType
				door = c.door
		}

이렇게 간단하게 복사가능하다.

같은 클래스에서 나온 인스턴스끼리 차이는 인스턴스 변수 내의 object뿐이다. 따라서 이 object를 그대로 복사하면 같은 인스턴스가 된다는 것에서 아이디어를 얻은 것임.

또한 위와같은 문법으로는, 어떤 인스턴스의 상태를 전혀 알지 못해도 해당 인스턴스와 동일한 인스턴스를 생성 가능하다.

또한 위에서, 만일 Car클래스 내에

Car(String color, String gearType, String door)

가 있다면, 굳이 코드를 다 쓸 필요없이 this()문법을 이용해

Car(**Car c**) {
				this(c.color, c.gearType, c.door)
		}

로 생성할 수 있다.

이렇게 클래스내의 생성자를 잘 활용하면, 아주 간결하고 직관적인 객체지향적 코드를 짤 수 있다.

앞으로는 인스턴스를 생성할때 어떤 생성자를 이용해 생성할지를 고민하자.

이제 강의를 듣자.