지역 중첩 클래스

지역 중첩 클래스

지역 중첩 클래스란 메소드 안에 클래스를 만드는 것을 의미한다. 메소드 자체가 일회성 코드를 보관하는 도구이기 때문에 지역 중첩 클래스도 메소드 실행 시 일시적으로 생성되는 일회성 클래스의 성격을 강하게 띈다.

지역 중첩 클래스의 형태

지역 중첩 클래스는 다음 형태로 구현한다.

public class Outer {//외부 클래스

    public void testMethod() {//메소드
    
        class Inner {//지역 중첩 클래스 
        
        }
    
    }

}

메소드 내부에서 생성되고 사용되므로 외부에서 접근이나 참조가 불가능하다.

지역 중첩 클래스의 활용 예시

Bluemarble.java
public class Bluemarble {
    public void dice(){
        //1회용 주사위세트 클래스 생성
        class DiceSet {
            int first, second;
            void generate(){
                Random r = new Random();
                this.first = r.nextInt(6) + 1;
                this.second = r.nextInt(6) + 1;
            }
            void print(){
                System.out.println("첫번째 = " + first + ", 두번째 = " +second);
            }
            int getTotal(){
                return this.first + this.second;
            }
        }
        
        //지역중첩 클래스 객체 생성 및 기능 호출(같은 메소드)
        DiceSet set = new DiceSet();
        set.generate();
        set.print();
        System.out.println("합계 = " + set.getTotal());
    }
}

지역 중첩 클래스는 그리 자주 사용되지는 않으나 메소드의 내용이 복잡할 경우 이를 간소화 할 수 있는 효과가 있다.

Last updated