Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

노승현

내부 클래스 본문

JAVA/Mentor JAVA

내부 클래스

nsh95 2024. 1. 9. 08:44

내부 클래스의 종류:

  1. 인스턴스 내부 클래스 (Instance Inner Class):
    • 외부 클래스의 인스턴스가 생성될 때만 사용할 수 있는 내부 클래스입니다.
    • 외부 클래스의 인스턴스 멤버에 접근이 가능합니다.
public class OuterClass {
    class InnerClass {
        // 내부 클래스의 멤버들
    }
}

 

 

2. 정적 내부 클래스 (Static Inner Class):

  • 외부 클래스의 인스턴스에 독립적으로 사용할 수 있는 내부 클래스입니다.
  • 외부 클래스의 정적 멤버에만 접근이 가능합니다.
public class OuterClass {
    static class StaticInnerClass {
        // 내부 클래스의 멤버들
    }
}

 

 

3. 지역 내부 클래스 (Local Inner Class):

  • 메서드나 블록 내에서 선언되는 내부 클래스로, 지역 변수처럼 사용됩니다.
  • 주로 메서드 내에서만 필요한 경우에 사용됩니다.
public class OuterClass {
    void someMethod() {
        class LocalInnerClass {
            // 내부 클래스의 멤버들
        }
    }
}

 

 

4. 익명 내부 클래스 (Anonymous Inner Class):

  • 이름이 없는 내부 클래스로, 주로 인터페이스나 추상 클래스의 인스턴스를 생성할 때 사용됩니다.
  • 선언과 동시에 인스턴스가 생성되며, 일회성으로 사용할 때 편리합니다.
public class OuterClass {
    interface MyInterface {
        void myMethod();
    }

    MyInterface anonymousClass = new MyInterface() {
        @Override
        public void myMethod() {
            // 익명 내부 클래스의 구현
        }
    };
}

 

 

 

내부 클래스의 접근 제한:

내부 클래스의 접근 제한은 일반적인 클래스의 접근 제한과 동일하게 private, default(package-private), protected, public 등을 사용할 수 있습니다. 내부 클래스가 외부 클래스의 private 멤버에 접근하려면 내부 클래스도 private으로 선언해야 합니다.

 

익명 클래스(Anonymous Class):

익명 클래스는 이름이 없는 내부 클래스로, 주로 한 번만 사용되는 간단한 구현체를 만들 때 유용합니다. 주로 인터페이스나 추상 클래스의 인스턴스를 생성할 때 사용되며, 선언과 함께 인스턴스를 생성합니다.

 

Runnable myRunnable = new Runnable() {
    @Override
    public void run() {
        // 실행 코드
    }
};

 

 

 

'JAVA > Mentor JAVA' 카테고리의 다른 글

API 클래스  (0) 2024.01.19
예외처리  (0) 2024.01.19
다형성과 타입 변화  (0) 2024.01.06
상속이란?  (0) 2024.01.02
생성자란?  (1) 2024.01.01