我在一个叫做“多项式”的类中有一个方法。从主要方法中,我创建了一个多项式类型的对象以使用此添加方法,但是我所做的事情是将其作为参数传递给另一个对象类型。
p.add(new Polynomial(new Term(-1, 1)));
我知道这会创建一个匿名的LinkedList。我创建了一个返回该对象类型术语的LinkedList的方法,以便可以使用该对象及其方法。
我想知道是否还有另一种方法可以访问另一个对象内部的该对象的方法。
这是一个课堂作业,我敢肯定有一种更简单的方法可以做到这一点,但这正是教授想要的方式。
public void add(Polynomial p) {
ListIterator<Term> toAddIterator = p.getTerms().listIterator();
ListIterator<Term> thisIterator = terms.listIterator();
Term termToAdd = toAddIterator.next();
while (thisIterator.hasNext()) {
Term current = thisIterator.next();
if (current.getPower() > termToAdd.getPower()) {
} else if (current.getPower() < termToAdd.getPower()) {
thisIterator.previous();
thisIterator.add(termToAdd);
thisIterator.next();
break;
} else {
thisIterator.previous().addIfSamePower(termToAdd);
break;
}
}
}
答案 0 :(得分:0)
在大多数情况下,在另一个对象内部调用对象方法的最佳方法是让外部对象实现该方法,然后该对象将在内部对象上调用该方法。这意味着您的外部类不会“了解太多”(外部对象内部有一个对象,并且实现了给定的方法)。
在此示例中,由于您传递了在此位置创建的对象,因此可以只创建对此对象的引用并传递该对象,因为您已经知道该对象存在。至少这就是我如何理解您的问题。