안드로이드 소스를 보면서 static과 더불어 저를 당황하게 하는 것이 내부(inner) 클래스입니다. 10년간 웹개발만 해서인지 내부 클래스 사용 경험이 별로 없어서겠지요.

나름대로 정리해본 내부 클래스 사용 이유입니다.

- 외곽(outer) 클래스의 모든 필드를 자유로이 사용가능
- 내부 클래스는 다중상속의 문제점을 해결하는 하나의 방안이 될 수 있음
  (자바는 여전히 하나의 추상클래스 밖에 상속하지 못하기 때문에 제한이 있으며,
  특정 클래스를 내부 클래스가 상속하게 하여 다중상속의 기능을 제공)
- 외곽 클래스와 같은 생명주기를 가지면서 외곽 클래스에서만 사용되는 경우
- 그외 주로 이벤트 중심 시스템(Event Driven System)과 같은 제어구현에서 내부클래스가 많이 사용됨
Posted by 에코지오
,