我想创建一个以某种方式链接到同一个类的另一个对象的对象。应在新对象的构造函数中指定此链接。
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();
}
尝试在档案馆搜索答案,但找不到任何东西......
答案 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)
为了达到你想要的目的,克劳德的答案已经足够好了。
你有两个版本的同一个班级。对我来说,似乎你需要遵循一些设计模式来更好地组织你的代码。在这种情况下,工厂模式可能是一个不错的选择。