JAVA

내부 클래스 ( inner class )

오선지♬ 2022. 3. 3. 21:46
728x90
반응형

내부 클래스란?

 - 클래스 안의 클래스

 

 

내부 클래스의 장점

 - 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근 할 수 있다.

 - 코드의 복잡성을 줄일 수 있다. ( 캡슐화 )

 

출처 : 자바의 정석
출처 : 자바의 정석

 

내부 클래스의 제어자와 접근성

 - 내부 클래스의 제어자는 변수에 사용 가능한 제어자와 동일하게 public/ (default)/ protected / private 다 사용가능.

 - static클래스만 static멤버를 정의 할 수 있다. ( 상수인경우 ( final static ) 에만 허용 )

     : static멤버는 객체 생성없이 외부에서 사용할 수 있는 것인데 클래스가 인스턴스클래스면 클래스의 인스턴스를  생        성해야지만 안에 있는 멤버를 사용할 수 있기 때문에 모순이 일어난다.

       

 - static 내부 클래스에서는 외부 클래스의 인스턴스 멤버에 접근할 수 없다.

 - 외부 클래스의 private 멤버도 내부 클래스에서 사용가능하다.

 - 외부 클래스의 지역변수는 final이 붙은 변수 (상수) 만 접근가능하다. 

 - 외부 클래스의 인스턴스를 먼저 생성해야 내부 인스턴스 클래스의 인스턴스를 생성가능.

 - static 내부 클래스의 인스턴스는 외부클래스 생성하지 않고

    외부클래스명.내부클래스명 참조변수 = new 외부클래스명.내부클래스명( ); 이런형태로 생성가능 

728x90
반응형

'JAVA' 카테고리의 다른 글

[JAVA] beak문, continue문, label문  (0) 2022.03.05
hashCode(), toString()  (0) 2022.03.04
인터페이스 ( interface )  (0) 2022.03.02
추상 클래스, 추상 메서드  (0) 2022.03.01
참조변수의 형변환  (0) 2022.02.28