【问题标题】:How to use the methods of object, inside another object如何在另一个对象内部使用对象的方法
【发布时间】:2018-07-14 18:25:15
【问题描述】:

我在一个名为多项式的类中有一个方法。从 main 方法中,我创建了一个多项式类型的对象来使用这个 add 方法,但是我所做的我已经将它作为参数传递给另一个对象类型。

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;
        }
    }
}

【问题讨论】:

  • 我已经阅读了您的问题 3 次。我无法理解你在问什么。我看不到您的多项式类的构造函数是什么样的。您发布的 add() 方法似乎与您的问题无关。请看how to ask good questions
  • 抱歉,这是我的第一篇文章。

标签: java oop linked-list


【解决方案1】:

大多数时候,调用另一个对象内部对象的方法的最佳方式是让外部对象实现该方法,然后再调用内部对象的方法。这意味着您的外部类不知道“太多”(外部对象内部有一个对象并且它实现了给定的方法)。

在此示例中,由于您传递了在此位置创建的对象,因此只需创建对该对象的引用并传递它即可 - 因为您已经知道该对象存在。至少我是这么理解你的问题的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-16
    • 2021-07-10
    • 2013-06-14
    • 1970-01-01
    • 2022-12-09
    • 2018-10-01
    • 2019-05-18
    • 1970-01-01
    相关资源
    最近更新 更多