클래스 내부에 선언된 클래스
클래스간 연관이 있을 때 사용
클래스간 멤버들에 접근이 쉬움
코드의 복잡성 감소
예약어에 따라 유형 분류
인스턴스 내부 클래스(instance inner class)
정적 내부 클래스(static inner class)
지역 내부 클래스(local inner class)
익명 내부 클래스(anonymous inner class)
인스턴스 내부 클래스, 정적 내부 클래스가 해당
멤버 형태로 존재
외부 클래스의 모든 멤버에 접근 가능
외부 인스턴스, 외부 전역 변수 사용 가능
외부 클래스 생성 후 사용 가능
외부 클래스 생성과 무관하게 사용
static
예약어 사용
외부 전역 변수 사용 가능
메서드 내에서 정의되는 클래스
정의된 메서드 내부에서만 사용 가능
정적 클래스 지정 불가
익명의 내부 클래스
클래스 선언과 객체 생성이 동시에 이루어짐
일회성 클래스
하나의 객체만 생성 가능
지역 내부 클래스와 유사하기 때문에, 지역 내부 클래스를 일회성으로 사용하고 싶은 경우 사용