如何从父对象中声明的另一个对象获取在另一个对象中声明的对象

时间:2015-11-03 02:52:40

标签: java parent-child hierarchy

public class MainThread extends Thread implements Runnable{

    GameScreen g;
    ObjectManager om;

    public MainThread(){

    }

}

所以我想要做的是在MainThread中的GameScreen对象中,我想从gamescreen中获取ObjectManager对象。所以我看待这种情况的方式是必须有一个关键字用于引用对象所在的对象,然后引用父对象内的对象。

public class GameScreen{
    public GameScreen(){
        // ObjectManager test = this.*parent object*.om;
    }
}

1 个答案:

答案 0 :(得分:0)

由于你没有包含完整的代码,所以事情有点不清楚。

如果GameScreen在其他地方声明(例如,在另一个文件中),那么它在技术上可以放在任何地方 - GameScreen的实例不必在MainThread中,因此它无法访问ObjectManager实例。你必须为GameScreen定义一个构造函数,它接受一个ObjectManager实例,然后在MainThread的构造函数中用你的om初始化g。

如果您只想在MainThread中使用GameScreen(不一定是最佳设计),您可以在非静态内部类中使用它。如果您在MainThread中定义了整个GameScreen类,那么每个GameScreen实例都将包含对包含MainThread的(隐藏)引用,从而引用om实例。