#TIL, Java Study, 내부클래스 Inner Class

26. 내부 클래스

: 클래스 안의 클래스 ( Inner Class <-> Outter Class )

표기 : A $ AInner.class

( $로 구분, 앞에가 큰 클래스, 뒤에가 내부클래스 )

원래 클래스에는 static이 붙지 않지만, 내부 클래스에는 static이 붙는다.
// 무한대까지 사용은 가능하나, 가독성 측면에서 사용하지 않는 편

(1) 객체 생성 방법

1) 내부 클래스가 일반 클래스일때,

A.AInner1 in1 = new A().new AInner1();
외부클래스.내부클래스 변수 = new 외부클래스().new 내부클래스( );

2) 내부 클래스가 static 클래스일때,

A.AInner2 in2 = new A.AInner2();

외부클래스.내부클래스 변수 = new 외부클래스.내부클래스();
내용을 입력하세요.
ex)day14/A.java

(2) main 위치

1) 제 3 클래스나 외부 클래스에 있을 때는 동일하게 사용 가능.

2) static 내부에서만, main을 정의할 수 있음.

( static 내부 클래스 에서만 static 자원(멤버/메소드)을 정의할 수 있다. )

( 실행시에는 "java A$AInner " 이렇게 입력해주어야 실행 됨. )

3) static 내부클래스에서는 외부클래스의 static 자원만 접근 가능.

( 일반 객체의 자원은 사용이 불가능 함. (객체).(자원) = X )

_ex)day14/B.java

(3) 쓰는 이유

: 외부 클래스의 자원을 '자기 것' 처럼 사용하기 위해서.
( private 자원까지도 사용이 가능하다. (원래는 자식도 못 쓰는 자원임) )

좋은 웹페이지 즐겨찾기