정적 멤버 클래스
- static 키워드와 함께 A 클래스의 멤버로 선언된 B 클래스
출처, 이것이 자바다
- 정적 멤버 클래스는 주로 default 또는 public 접근 제한을 가진다.
package ch09.sec03.exam01;
/*
* 중첩클래스
* - 정적(static)멤버 클래스
*/
public class A {
//중첩 클래스 - 인스턴스 클래스
class C {};
//중첩 클래스 - 정적 클래스 선언(정의)
static class B {}
//인스턴스 필드사용
B field1 = new B();
//정적 필드사용
static B field2 = new B();
//생성자
A() {
B b = new B();
}
void method1() {
B b = new B();
}
static void method2() {
B b = new B();
}
}
package ch09.sec03.exam01;
public class AExample {
public static void main(String[] args) {
//1)인스턴스 C클래스 객체 생성하기 : A클래스 객체 생성이 먼저 진행되어야 한다.
A a = new A();
A.C c = a.new C();
//2)정적 클래스 B 객체 생성하기 : A클래스 객체 생성 없이 가능.
A.B b = new A.B();
}
}
package ch09.sec03.exam02;
public class A {
static class B{
int field1 = 1;
B() {
System.out.println("B-생성자 실행");
}
void method1() {
System.out.println("B-method1 실행");
}
}
}
package ch09.sec03.exam02;
public class AExample {
public static void main(String[] args) {
A.B b = new A.B();
System.out.println(b.field1);
b.method1();
}
}
'객체 지향 프로그래밍 - 중첩 선언과 익명 객체' 카테고리의 다른 글
익명 객체 (0) | 2023.01.25 |
---|---|
바깥 멤버 접근 (0) | 2023.01.25 |
로컬 클래스 (0) | 2023.01.25 |
중첩, 인스턴스 멤버 클래스 (0) | 2023.01.25 |