이너 클래스의 종류

class A {
	class B {} // 멤버 이너 클래스(인스턴스 멤버 클래스)
	static class c {} // 멤버 이너 클래스(정적 멤버 클래스)
	void abc() {
		class D {} // 지역 이너 클래스(지역 클래스)
	}
}

이너 클래스 사용

A a = **new** A();
A.B b = a.new B();

A.this.a // 내부 클래스에 같은 a가 있는데 외부 클래스의 a를 사용하고 싶을때

정적 멤버 이너 클래스

class A {
	static class B {
	}
}

A.B b = new A.B();

이너 인터페이스

class A {
	static interface B { // static을 생략해도 컴파일러가 자동으로 추가
		void bcd();
	}
}