访问传递的对象中的变量

时间:2017-02-05 19:20:33

标签: java

我正在处理我正在处理的作业中的概念问题

public class MyHugeInteger
{

MyIntList list = new MyIntList();

    public int compareTo(MyHugeInteger hugeInt)
    {
        if (list.size() > this.list.size()) //this is where things don't work
            return (-1);
        if (list.size() < this.list.size())
            return (1);
    }

基本上,我需要能够使用传递的对象版本中的'list'变量,以便能够将它与当前对象的列表变量进行比较。

之前我遇到过类似的问题,我的教授回答说“同一个类的对象可以访问彼此的私人数据成员。所以你可以从”这个“访问other.size并且可以检查Set sizes为了平等。“

这就是我在给出的代码中尝试使用的内容,但是我找到了一个例子,说这将调用字段变量,只是通过说'list'来调用的那个

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

如果您正在尝试使用Java框架对事物进行排序或按预期使用compareTo方法,则需要在类中implements Comparable<MyHugeInteger>

public class MyHugeInteger implements Comparable<MyHugeInteger>

然后,要修复错误,您需要使用参数对象,因为this.list和非限定list是完全相同的对象。

还要考虑当尺寸相等时会发生什么。

提示:不需要自己重写整数比较逻辑。

@Override
public int compareTo(MyHugeInteger hugeInt) {
    return Integer.compare(this.list.size(), hugeInt.list.size());
}

乘以负数或翻转参数,如果您发现排序错误。

答案 1 :(得分:0)

评论是对的,hugeInt.list.size()&gt; this.list.size()而不是使用&#39;这个&#39;对于传递的对象。当你过度思考这个问题时,你会错过的其中一件事