본문 바로가기

게으른개발자/공부

네스티드 클래스


네스티드 클래스란? 

아래와 같이 클래스안에 정의된 클래스

1
2
3
class Outer {
    class Nested {...}
}
cs



네스티드 클래스의 구분


네스티드 클래스는 크게 2개로 나뉨

1. static 네스티드 클래스

1
2
3
class Outer {
    static class Nested {...}
}
cs

2. Non-static 네스티드 클래스 (=이너 클래스)


이너클래스는 총3가지로 나뉘어짐 

- 멤버 (이너) 클래스 : 인스턴스 변수, 인스턴스 메소드와 동일한 위치에 정의

1
2
3
class Outer {
    class MemberInner {...}
}
cs

- 로컬 (이너) 클래스 : 중괄호 내에, 특히 메소드 내에 정의

1
2
3
4
5
class Outer {
    public void method() {
        class LocalInner {...}
    }
}
cs

- 익명 (이너) 클래스 : 클래스인데 이름없는 클래스

1
2
3
4
5
6
7
8
9
10
11
12
interface testInter { 
    public void test(); 
}
 
class Outer {
    public testInter method() {
        return new testInter() {
            public void test()  {
                System.out.println("test");
            }
        };
}
cs