先来看下面的一段程序
public class T{
A o1;
public static void main(String[] args){
A a = new A();
B b = new B();
C c = new C();
D d = new D();
T t = new T();
c.o4 = d;
b.o3 = c;
a.o2 = b;
t.o1 = a;
System.out.println(t.o1.o2.o3.o4.i);
}
}
class A{
B o2;
}
class B{
C o3;
}
class C{
D o4;
}
class D{
int i;
}
运行结果:
也许有的人会问,如果去掉下面的程序,程序会不会执行呢,或者为什么要加入下面的一段程序:
c.o4 = d;
b.o3 = c;
a.o2 = b;
t.o1 = a;
我们回到原来的程序,一步一步分析,当我们创建一个T类的对象的时候,它的数据o1默认值为0,即t.o1的值为0,所以执行程序System.out.println(t.o1.o2.o3.o4.i)
会出错。