Java Call类创建了一个对象

时间:2013-08-07 06:53:18

标签: java

我想知道如何选择,操纵创建对象的类。

代码:

public myclass(){

       public anotherclass a = new anotherclass();    

}

anotherclass:

      //how to use the class that created this class ?

4 个答案:

答案 0 :(得分:5)

基本上,你不能。如果您的其他类需要知道实例或创建它的类,您应该通过构造函数传递该信息。例如:

public class Parent {
    private final Child child;

    public Parent() {
        child = new Child(this);
    }
}

public class Child {
    private final Parent parent;

    public Child(Parent parent) {
        this.parent = parent;
    }
}

(这使得父实例可供孩子使用 - 如果您只对类感兴趣,则会传递Parent.class和{ {1}}构造函数将使用Child参数。

答案 1 :(得分:2)

通过composition

在AnotherClass中安装MyClass实例并为其创建构造函数

class AnotherClass {

   private MyClass myClass;

   public AnotherClass(MyClass myClass) {
        this.myClass = myClass;   
   }

   public void domeSomethignWithMyClass() {
       //myClass.get();
   }
}

从MyClass方法创建时,传递实例

public void someMyClassMethod() {
    AnotherClass anotherClass = new AnotherClass(this);
    //...
}

答案 2 :(得分:1)

您可以创建一个以myclass作为参数的构造函数:

public class Myclass
{
    Anotherclass a;

    public Myclass()
    {
         a = new Anotherclass(this);
    }
}

class Anotherclass
{
    private Myclass m;

    public Anotherclass(Myclass m)
    {
       this.m = m;
    }
}

答案 3 :(得分:0)

您必须将myclass的参数传递给anotherclass - 对象:

public anotherclass{

    private myclass object;

    Public anotherclass(myclass object){

        this.object = object;

    }
}

您将对象称为:

public myclass(){

       public anotherclass a = new anotherclass(this);    

}