[Java] Nested class

mimah·2021년 7월 30일
0

Java

목록 보기
6/9
post-thumbnail

Nested Class (Static inner class)

Nested Class(중첩 클래스)는 다른 클래스의 내부에서 멤버로 정의된 클래스이다.
static 키워드가 사용된 내부 클래스와 동일한 의미이다.

Java 예제

소스 코드

  • OuterClass { NestedClass }
public class OuterClass {
	private int val; // 인스턴스 변수
    	private static int cnt = 1; // 클래스 변수 (static)
    
	public OuterClass (int val) {
    		this.val = val;
        }
    
        // static inner class (Nested class)
        public static class NestedClass {
            public void displayOuterInfo() {
                // System.out.println(val);	<- 컴파일 오류
                //				   static 클래스에서는 외부 클래스의
                //				   'static이 아닌 멤버' 사용 불가

            	System.out.println(cnt);
            }

        public static int num = 10; // static을 삭제하면 num 변수 사용 시 오류 발생

        public static void print() { // static을 삭제하면 print() 호출 시 오류 발생
            System.out.println("num = " + num);
        }
    }
}
  • Main
public class Main {
	public static voiod main(String[] args) {
    	System.out.println("Nested Class(중첩 클래스) : static inner class\n");
        
        OuterClass.NestedClass nest = new OuterClass.NestedClass();
        nest.displayOuterInfo();
        
        System.out.println(OuterClass.NestedClass.num);
        OuterClass.NestedClass.print();
    }
}

실행 결과

static으로 선언된 내부 클래스 안에서는 static으로 선언된 변수와 메소드만 사용할 수 있다.


profile
블로그 이전 mimah.tistory.com

0개의 댓글