调用特定其他对象的方法

时间:2014-09-28 08:12:04

标签: java

我想创建一个以某种方式链接到同一个类的另一个对象的对象。应在新对象的构造函数中指定此链接。

public class Counter {
    public Counter(){
     // default counter constructor
    }

    public Counter(Counter oldCounter){
     // do stuff specifying new object is linked to oldCounter
    }

    public void someMethod(){
    // this method should call a method belonging to oldCounter
        oldCounter.someOtherMethod();
    }

尝试在档案馆搜索答案,但找不到任何东西......

2 个答案:

答案 0 :(得分:4)

将参数记住为私有实例成员,然后使用该成员:

public class Counter {
    // The instance member we'll use, note that we initialize it to `null`
    // because you have a zero-args constructor, so we want to be sure we
    // know whether we have one or not
    private Counter otherCounter = null;

    public Counter() {}

    public Counter(Counter oldCounter) {
        // Remember it here
        this.otherCounter = oldCounter;
    }

    public void someMethod() {
        // Use it here
        if (this.otherCounter != null) {
            this.otherCOunter.someOtherMethod();
        }
    }
}

答案 1 :(得分:-1)

为了达到你想要的目的,克劳德的答案已经足够好了。

你有两个版本的同一个班级。对我来说,似乎你需要遵循一些设计模式来更好地组织你的代码。在这种情况下,工厂模式可能是一个不错的选择。