[java] 자바 Inner 클래스, Nested 클래스, Local 클래스 그리고 Anonymous 클래스 에 대한 이해


Inner 클래스와 Outer 클래스
– 다른 클래스 내부에 삽입된 클래스
– 외부 클래스를 Outer 클래스 내부 클래스를 Inner 클래스라고 한다.
– Outer 클래스의 인스턴스가 생성된 후에 Inner 클래스의 인스턴스 생성이 가능하다.
– Outer 클래스의 인스턴스를 기반으로 Inner 클래스의 인스턴스가 생성된다.

 

Nested 클래스
– Inner 클래스에 static 키워드가 선언된 클래스

 

Local 클래스
– 메소드 내에 정의된 클래스
– 메소드 내에서만 참조변수 선언이 가능하다

 

Anonymous 클래스
– 클래스의 이름이 정의되지 않은 클래스

– 인터페이스의 인스턴스를 리턴한다.