Java

[Java] 내부 클래스

망고고래 2024. 3. 31. 19:25

what?

클래스 안에 있는 클래스. 내부 클래스는 외부 클래스의 모든 멤버를 자신의 멤버처럼 사용 가능

why?

두 클래스 멤버들 사이에 서로 쉽게 접근→코드 간결

클래스 내부에 클래스를 감추어 캡슐화

how?

class OuterClass{
    class InnerClass{
        
    }
}

 

내부 클래스는 클래스의 멤버변수처럼 구별됨

class OuterClass{
    //인스턴스 클래스
    class InnerInstance{
    }
    //스태틱 클래스
    static class InnerStatic{
    }
    //지역 클래스
    void methodA(){
        class InnerLocal(){
        }
    }
}

 

내부클래스에 제어자 사용 가능

abstract

private, protected...

 

외부 클래스 생성 후 외부 클래스를 통해 내부 클래스 생성 가능

OuterClass oc = new OuterClass();
OuterClass.InnerClass ic = oc.new InnerClass();