【发布时间】:2008-12-04 00:31:34
【问题描述】:
抱歉标题不好,但我想不出更好的标题。
我有一个 A 类和一个 B 类,它是 A 的子类,如下所示:
(它实际上有正确的名称吗?“子类”不是为继承保留的吗?)
class A {
int i = 0;
class B {
int j = 1;
}
}
class Test {
public static void main() {
A a = new A();
B b = a.new B();
A c = ??? b ??? // get "a" back
}
}
从 B 可以访问 A 的每个属性,因此 a.i 和 b.i 都返回 0。现在,我想知道是否有可能从 b 中检索类型 A 的原始对象,因为 b 包含所有一个包含?简单的转换显然不能解决问题。
第二个:
class A {
void print() {
System.out.println("This is class A.");
}
class B {
void print() {
// <--- How to access print() of class A (like this.A.print() or smth)?
System.out.println("This is class B.");
}
}
}
你也可以为我提供一些关于这个主题的好资源,因为到目前为止我太笨了,找不到好的资源。
提前致谢。 :)
【问题讨论】:
-
我相信正确的名字是内部类。
-
我相信这是这个问题的重复(stackoverflow.com/questions/309737/…)
-
其实我总是又忘记了这个“classname.this”语法:)
-
A c = b.this$0;有效吗?