Language/Java

[Java] 내부클래스

Hoplin 2022. 1. 7. 14:03
반응형

내부클래스란

내부 클래스는 클래스 내에 선언되는 클래스 형태이다. 내부 클래스의 장점은 아래 두가지로 볼 수 있다.

 

  1. 내부 클래스에서 외부클래스의 멤버들을 쉽게 접근할 수 있다
  2. 코드의 복잡성을 줄 일 수 있다.
package Interface2;

class A{
    class B{
        
    }
}

내부 클래스의 종류, 특징

내부 클래스종류는 변수 선언위치에 따른 종류와 동일하다. 종류와 특징은 아래와 같다.

 

내부클래스 특징
인스턴스 클래스 멤버변수 선언위치와 동일한 위치에 선언, 인스턴스 멤버처럼 다뤄진다. 주로 외부 클래스의 인스턴스 멤버들과 관련된 작업에 사용
스태틱 클래스 static멤버처럼 다루어진다. static메소드에서 사용될 목적으로 사용
지역 클래스 외부클래스 메소드나, 초기화 블록 안에 선언, 선언된 영역 내부에서만 사용 가능
익명 클래스 클래스 선언, 객체생성을 동시에 하는 무명 클래스(일회용이다)
package Interface2;


class Outer{
    class InstanceInner{}// 인스턴스 클래스
    static class StaticInner{} // static 클레스
    void myMethod(){
        class LocalInner{} // 지역 클래스
    }
}

내부 클래스도 클래스이므로, abstract, final같은 접근제어자 사용이 가능하다. 또한 멤버변수처럼 private, protected접근 제어자도 사용이 가능하다. 다만 내부 클래스에서 static클래스만, static멤버변수를 가질 수 있다. 다만, final static으로 선언되는 상수는 다른 내부클래스에서도 사용이 가능하다.

반응형