클래스 형 변수 대입하기
클래스 타입 변수끼리 대입을 할 수 있습니다.
이 경우, 각각의 독립된 객체가 생기는 것이 아니라 대입하는 객체의 주소를 저장하여 가리키게 됩니다.
위와 같이 객체에 객체를 대입했을 경우 lion은 tiger의 주소를 가리켜 둘 중 하나의 멤버를 바꾸면 나머지 한 쪽의 멤버 값도 바뀌게 됩니다.
null
null을 객체에 대입하면 어떤 객체도 가리키지 않는 상태가 됩니다.
어떤 객체도 참조하지 않게 되면, Java의 판단에 따라 객체는 소멸됩니다. 당연히, 메모리도 객체가 생성되기 전의 상태로 돌아갑니다. 이런 기능을 하는 Java의 메커니즘을 "가비지 컬렉션"이라고 합니다.
finalize( )
생성자와 반대로 객체가 소멸할 때 자동으로 호출되는 메소드입니다. 가비지 컬렉션이 실행되는 시점은 전적으로 Java가 판단하기 때문에 finalize( )의 실행 시점을 컨트롤할 수는 없습니다.
클래스를 인수로 사용하기
메소드의 인수로 클래스 타입을 전달할 수 있습니다. 이 경우, 값이 복사되는 것이 아니라 주소 그대로 전달됩니다. 따라서 전달된 값을 바꾸면 실제 값도 바뀝니다. 이것을 참조 전달이라고 합니다.
반대로, 기본형 변수를 전달하면 복사되어 전달되며 값전달이라고 합니다.
객체 배열
객체를 배열로 다루는 방법은 기본형 변수와 같습니다.
클래스 형 배열을 선언한 다음, 몇 개를 만들지 배열을 생성해주고 객체를 생성해 변수에 대입해 줍니다.
컬렉션
배열은 객체를 모아서 다뤄야 할 때 편한 기능입니다. 하지만, 클래스 라이브러리에 컬렉션 클래스를 이용하면 객체를 더 쉽게 추가하고 제거하는 기능을 사용할 수 있습니다.
컬렉션 클래스 안에 있는 내용은 다음과 같습니다. 여기서는 이런 기능이 있다는 것만 알아둡시다.
리스트
셋
맵