한 클래스가 여러 클래스와 관계를 갖을 땐 독립적으로 선언하는것이 좋다. 하지만 특정 클래스와 관계를 맺을 땐 내부에 선언하여 불필요한 관계 클래스를 감추고 코드의 복잡성을 감출 수 있게된다.
중첩클래스
중첩클래스는 크게 두가지로 나뉘는데 다음과 같다.
멤버클래스 - 클래스의 멤버로서 선언되는 중첩클래스. 멤버클래스는 static 여부에 따라 인스턴스 멤버클래스, 정적 멤버클래스로 나뉜다. 클래스나 객체가 사용중이면 언제나 재사용 가능.
로컬클래스 - 메소드 내부에서 선언되는 중첩클래스. 메소드 실행 시에만 사용되고 종료되면 없어진다.
다음은 인스턴스 멤버 클래스 사용예시이다.
1 | class A{ |
다음은 인스턴스 정적 멤버 클래스 사용예시이다.
static변수에 대한 이해가 필요하다.
1 | class A{ |
다음은 로컬 클래스 사용예시이다.
주로 비동기 처리를 위해 스레드 객체를 만들 때 사용한다.
1 | void method() { |