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);
}
}
package com.test;
class A {
public void test() {
B b = new B(this);
}
public void print() {
System.out.println("A ...");
}
}
class B {
public A a;
public B(A a) {
this.a = a;
}
public void test() {
C c = new C(this);
}
public void print() {
System.out.println("B ...");
}
}
class C {
public B b;
public C(B b) {
this.b = b;
}
public void test() {
D d = new D(this);
}
public void print() {
System.out.println("C ...");
}
}
public class D {
public C c;
public D(C c) {
this.c = c;
}
public static void main(String[] args) {
D d = new D(new C(new B(new A())));
d.c.b.a.print();
}
}