java/java
중첩 클래스
발망생
2022. 4. 21. 18:41
*중첩 클래스의 분류
*인스턴스 멤버 클래스
class A {
class B {
B() {}
int field1;
//static int field2; //정적 필드 (x)
void method1() {}
//static void method2() {} //정적 메소드(x)
}
}
A a = new A(); //중첩 클래스 객체 생성 전 A클래스 먼저 객체 생성
A.B b = a.newB(); //그 다음에 B객체 생성
b.field1 = 3;
b.method1();
*정적 멤버 클래스
class A {
static class C {
C() {}
int field1;
static int field2;
void method1() {}
static void method2() {}
}
}
A.C c = new A.C(); // A객체를 생성하지 않아도 바로 C객체 생성가능
c.field1 = 3;
c.method1();
A.C.field2 = 3; // 정적 필드와 메소드는 생성된 객체를 통해서가 아니라도 곧바로 접근이 가능하다
A.C.method2();
*로컬 클래스
void method() {
class D {
D() {}
int field1;
//static int field2; //정적 필드(x)
void method1() {}
//static void method2() {} //정적 메소드(x)
}
D d = new D();
d.field = 3;
d.method1();
}
-메소드 내에서만 사용 가능