日期:2014-05-20  浏览次数:20683 次

java类与对象的问题
遇到如下一个问题:
假如现在有6个类,分别是A,B,C,D,E,F
在A类里创建了B类的对象(B b=new B();)
在B类里创建了C类的对象(C c=new C();)
在C类里创建了D类的对象(D d=new D();)
在D类里创建了E类的对象(E e=new E();)
在E类里创建了F类的对象(F f=new F();)
假设程序从A类一直执行到了F类里。
现在我要从F类里调用D类里的数据,然后再调用B类里的数据,该如何操作?
(原来创建了D类的对象,如果现在要在F类里再创建一个D的对象,就是开辟了一个新的对象空间,原来存储在D类的数据就不能被F类调用到了!用什么更好的办法?????)

------解决方案--------------------
像你这种这么多层的调用,在实际项目中很常见,并没有什么问题。需要在F类中调用D类的中的数据,比较常用的方式是一层一层往下传,D传给E,E再传给F。其他的以此类推。
------解决方案--------------------
public class ObjectReferencing {

    public static class A {

    }

    public static class B {

        public A a = new A();
    }

    public static class C {

        public B b = new B();
    }

    public static class D {
        
        public C c = new C();
    }

    /////////////////////////////////////////////////////////

    public static void main(String[] args) {
        D d = new D();

        System.out.println("c is " + d.c);
        System.out.println("b is " + d.c.b);
        System.out.println("a is " + d.c.b.a);
    }
}


这样的引用都是很正常的。
------解决方案--------------------
A a = new A();
F f = a.b.c.d.e.f;
B b = a.b;
D d = a.b.c.d;
然后就可以调了吧....
------解决方案--------------------