클래스 C가 클래스 B 내에 중첩되어 있고 클래스 B가 클래스 A 내에 중첩되어있는 경우 어떻게 클래스 C를 인스턴스화 할 수 있습니까? C
를 인스턴스화Java 중첩 클래스 중첩
class A {
class B {
class C {
..............
}
}
}
클래스 C가 클래스 B 내에 중첩되어 있고 클래스 B가 클래스 A 내에 중첩되어있는 경우 어떻게 클래스 C를 인스턴스화 할 수 있습니까? C
를 인스턴스화Java 중첩 클래스 중첩
class A {
class B {
class C {
..............
}
}
}
, 당신은 다시 A
의 둘러싸는 인스턴스를해야합니다 B
의 둘러싸는 인스턴스를해야합니다. 이 같은
A someA = new A();
B someB = a.new B();
C someC = b.new C();
뭔가가
A.B.C c = new A().new B().new C();
당신은 당신이 원하는 경우 새로운() 라인을 연결할 수 있습니다해야한다.
이렇게 인스턴스화 할 수 있습니다. 기능에 의존하지 않는 클래스가 중첩되는 경우
A a = new A();
A.B b = a.new B();
A.B.C c = b.new C();
이 작동 ..
public class InnerClassTest1 {
public static void main(String[] args) {
A a = new A();
A.B b = a.new B();
A.B.C c = b.new C();
c.setValue(100);
System.out.println("Innermost value " + c.getValue());
}
}
class A {
class B {
class C {
int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
}
}
는, 즉 class C
그런 다음 내부를 만들 수있는 방법 및/또는 class B
또는 class A
의 필드를 참조하지 않습니다 static 클래스.
class A {
static class B {
static class C {
...
}
}
}
당신은 당신이 원하는 위치에서 그들을 만들 수 있습니다
A.B.C c = new A.B.C();