如何将自己作为代表传递

时间:2011-05-12 23:09:52

标签: java delegates

我正在班级'母亲'中创建一个新对象'baby',它实现了一个包含一个方法'feed'的界面(这些名称仅用于说明)。

如何通过'baby'类的构造函数将指针传递给'mother'类? 我希望婴儿班能够在其整个生命周期内随时调用“饲料”方法。

到目前为止,我所尝试的内容总是产生编译器错误。

婴儿班的构造者

public Baby(String name, Mother mother) {
    this.mother=mother;
    this.name=name;
}

用于创建婴儿对象的代码(在母班内)

Baby baby = new Baby("Brian",this);

2 个答案:

答案 0 :(得分:2)

  

我正在尝试从Mother类中的静态main方法中创建baby对象。

您无法在this内容中传递static,例如作为static字段,位于static {}初始值设定项或static method()方法中。静态上下文适用于类本身,而不适用于特定实例。

在构造函数或Mother的非静态字段/方法中执行作业。

答案 1 :(得分:2)

在你母亲班的主要方法中,实例化母亲班,然后将其传递给婴儿。

public static void main(String[] args) {
  ....
  Mother mother = new Mother();
  Baby baby = new Baby("Brian", mother);
  ....
}