중첩 클래스
2022. 4. 21. 18:41ㆍjava/java
*중첩 클래스의 분류
*인스턴스 멤버 클래스
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();
}
-메소드 내에서만 사용 가능
'java > java' 카테고리의 다른 글
프로세스와 스레드 (0) | 2022.04.22 |
---|---|
익명 객체 (0) | 2022.04.22 |
중첩 클래스와 중첩 인터페이스란? (0) | 2022.04.20 |
디폴트 메소드와 인터페이스 확장 (0) | 2022.04.19 |
인터페이스 상속 (0) | 2022.04.19 |