내부클래스는 클래스 내에서 선언된 클래스.
내부 클래스의 종류는 변수의 선언위치에 따른 종류와 같다.
클래스 안에 클래스를 선언하면 된다.
class Main() {
class Sub() {}
}
※ 각 내부 클래스의 선언 위치에 따라 변수와 동일한 유효범위와 접근성을 갖게된다.
내부 클래스도 abstract나 final 같은 제어자와 public, private 같은 접근제어자를 사용 할 수 있다.
class Main() {
private class Sub1() {}
final class Sub2() {}
}
이름이 없는 클래스
특징
Test t = new Test() { void method(){} } // 익명 클래스