내부 클래스는 클래스 내에 선언된다는 점을 제외하고는 일반적인 클래스와 다르지 않다.
class A{ //외부클래스
...
class B{ //내부클래스
...
}
...
}
B
는 외부 클래스인 A
를 제외하고는 다른 클래스에서 잘 사용되지 않는 것이어야 한다.static 멤버
를 가질 수 있다.final
과 static
이 동시에 붙은 변수는 상수 이므로 모든 클래스에 정의가 가능하다.인스턴스 클래스
와 스태틱 클래스
는 외부 클래스의 멤버변수와 같은 위치에 선언되며, 또한 멤버 변수와 같은 성질을 가진다.public class Example {
interface MyInterface {
void doSomething();
}
public static void main(String[] args) {
MyInterface myClass = new MyInterface() {
@Override
public void doSomething() {
System.out.println("doSomething");
}
};
myClass.doSomething();
}
}
일회용 클래스
이다.외부클래스명$숫자.class
형식으로 클래스 파일명이 결정된다.