1. 생성 : new 생성자를 이용하여 생성
  2. static(정적) : 내부 클래스 static으로 선언 (생성 없이 호출 가능)
  3. 메소드 클래스 선언 : 메소드 안에서 클래스를 선언, 메소드 안 이용 가능
  4. 익명클래스 : 일회성의 클래스로 클래스의 정의와 동시에 인스턴스를 생성하여 사용됨
    1. 사용 : 인터페이스명 변수명 = new 인터페이스명() {익명 클래스의 내용, 메소드 오버라이딩};