정적 중첩 클래스
public class NestedOuter {
private static int outClassValue = 3;
private int outInstanceValue = 2;
static class Nested {
private int nestedInstanceValue = 1;
public void print() {
// 자신의 멤버에 접근
System.out.println(nestedInstanceValue);
// 바깥 클래스의 인스턴스 멤버에 접근
//System.out.println(outInstanceValue);
// 바깥 클래스의 클래스 멤버에는 접근할 수 있다. private도 접근 가능하다.
System.out.println(outClassValue);
}
}
}
=> 바깥 클래스의 인스턴스 멤버에는 접근할 수 없다. 그러나 바깥 클래스의 클래스 멤버에는 접근할 수 있다. static은 물론 중첩 클래스가 아니어도 접근이 가능하지만 차이점은 private도 접근 가능하다는 접이다.
public class NestedOuuterMain {
public static void main(String[] args) {
NestedOuter outer = new NestedOuter();
NestedOuter.Nested nested = new NestedOuter.Nested();
nested.print();
System.out.println("nestedClass = " + nested.getClass());
}
}
실행결과
* 인프런 '스프링 핵심 원리 -기본편' 강의를 참고하여 작성했습니다.
'프로그래밍언어 > Java' 카테고리의 다른 글
[Java 중급] 내부 클래스 (0) | 2024.09.03 |
---|---|
[Java 중급] 정적 중첩 클래스의 활용 (0) | 2024.09.03 |
[Java 중급] 중첩 클래스, 내부 클래스 (0) | 2024.09.03 |
[Java 중급] 열거형 - Enum Type (4) | 2024.08.29 |
[Java 중급] 타입 안전 열거형 패턴 (0) | 2024.08.29 |