클래스 내에 선언되는 클래스

장점


형식


class A{
	//...
}
class B{
	//...
}

class A{
	//....
	class B{
		//...
	}
}

내부클래스 B는 외부클래스 A를 제외하고는 다른 클래스에서 잘 사용되지 않아야함

종류


내부 클래스 특징
인스턴스 클래스 외부클래스의 멤버변수 선언위치에 선언, 외부클래스의 인스턴스멤버처럼 다루어짐
스태틱 클래스 외부클래스의 멤버변수 선언위치에 선언, 외부클래스의 static멤버처럼 다루어짐
지역 클래스 외부클래스의 메서드나 초기화블럭 안에 선언, 선언된 영역 내부에서만 사용 o
익명 클래스 클래스의 선언과 객체의 생성을 동시에하는 이름없는 클래스 (일회용)
class Outer{
	class InstanceInner{}            //인스턴스 클래스
	static class StaticInner{}       //스태틱 클래스

	void myMethod(){
		class LocalInner{}             //지역 클래스
	}
}

특징