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

有点发迷,请指点一下
类:A,B,C,

A中有main,实例化了A赋值给了pA,A的构造函数里面,构造了B,并赋值给了A的成员变量pB,B的构造函数构造了C,并赋值给了B的成员变量pC,C中有一个函数func

问题1:在A的main函数当中,直接调用func的方法是不是:pB.pC.func();

问题2:此时另外一个毫不相关的类:X
可以直接在X类中,直接调用已经存在的对象pC【就是上面已经有地址值的对象pC】的func函数吗,如何实现?(是否是import类A,直接使用pA????即:pA.pB.pC.func();)


多谢各位大侠了~~~


------解决方案--------------------
题目真绕
Java code

public class A {
    private B pb;
    A(){
        pb=new B();
        
    }
    
    public B getB(){
        return pb;
    }
    
    public static void main(String[] args) {
        A  pa=new A();
        pa.pb.getC().func();
    }
}


public class B {
    private C pc;
    B(){
        pc=new C();
    }
    
    public C getC(){
        return pc;
    }
}

public class C {
    public void func(){
        System.out.println("this is func");
    }
}


public class X {
    public static void main(String[] args) {
        A a=new A();
        a.getB().getC().func();
    }
}

------解决方案--------------------
引用楼主 flycsdn 的帖子:
类:A,B,C,

A中有main,实例化了A赋值给了pA,A的构造函数里面,构造了B,并赋值给了A的成员变量pB,B的构造函数构造了C,并赋值给了B的成员变量pC,C中有一个函数func

问题1:在A的main函数当中,直接调用func的方法是不是:pB.pC.func();
这得看你的属性的访问修饰符是什么

问题2:此时另外一个毫不相关的类:X
可以直接在X类中,直接调用已经存在的对象pC【就是上面已经有地址值的对象pC】的func函数吗,如何实现?(是否是import类A,直接使用pA?…
这个不能