minOS

자바의 정석 ch7-42~44 내부클래스의 종류, 특징, 선언 본문

TIL/남궁성의 자바의 정석

자바의 정석 ch7-42~44 내부클래스의 종류, 특징, 선언

minOE 2024. 2. 11. 17:28
728x90

ch7-42 내부 클래스(inner class)

예시
class A { // B의 외부 클래스
    class B { //A의 내부 클래스
        
    }
}​
내부 클래스의 장점
- 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
- 코드의 복잡성을 줄일 수 있다.(캡슐화)

 

실습

내부 클래스 사용 X)
class A {
    int i = 100;
    B b = new B();


}

class B{
    void method(){
        A a = new A();
        System.out.println(a.i);
    }

}

class C{
    B b = new B();

}


public class Main {
    public static void main(String[] args) {
       B b = new B();
       b.method();
    }
}​

출력



내부 클래스 사용 O) 
주석 참고

ch7-43,44 내부 클래스의 종류와 특징 

- 내부 클래스 종류의 유효 범위(scope)는 변수와 동일

instance 변수, static 변수 , local 변수 성질 생각하기
public class Example {
    static int staticVariable = 10; // 스테틱 변수

    int instanceVariable; // 인스턴스 변수

    // 생성자
    public Example(int instanceVariable) {
        this.instanceVariable = instanceVariable;
    }

    // 인스턴스 메서드
    public void instanceMethod() {
        // 인스턴스 메서드에서 스테틱 변수 사용
        System.out.println("Inside instance method: " + staticVariable);
    }

    public static void main(String[] args) {
        Example obj = new Example(20);

        // 인스턴스를 통해 인스턴스 변수에 접근
        System.out.println("Accessing instance variable through instance: " + obj.instanceVariable);

        obj.instanceMethod(); // 인스턴스 메서드 호출
    }
}

출력

728x90