( $로 구분, 앞에가 큰 클래스, 뒤에가 내부클래스 )
원래 클래스에는 static이 붙지 않지만, 내부 클래스에는 static이 붙는다.
// 무한대까지 사용은 가능하나, 가독성 측면에서 사용하지 않는 편
A.AInner1 in1 = new A().new AInner1();
외부클래스.내부클래스 변수 = new 외부클래스().new 내부클래스( );
A.AInner2 in2 = new A.AInner2();
외부클래스.내부클래스 변수 = new 외부클래스.내부클래스();
내용을 입력하세요.
ex)day14/A.java
( static 내부 클래스 에서만 static 자원(멤버/메소드)을 정의할 수 있다. )
( 실행시에는 "java A$AInner " 이렇게 입력해주어야 실행 됨. )
( 일반 객체의 자원은 사용이 불가능 함. (객체).(자원) = X )
_ex)day14/B.java
: 외부 클래스의 자원을 '자기 것' 처럼 사용하기 위해서.
( private 자원까지도 사용이 가능하다. (원래는 자식도 못 쓰는 자원임) )