toString方法和返回数组之和的Recursion方法中的错误

时间:2017-11-04 01:56:17

标签: java arrays object recursion

我正在解决以下问题:

只用一个实例变量,一个整数数组编写一个对象类。构造函数应该将整数数组作为唯一参数。编写所有访问器,mutators,toString和equals方法。还要写一个额外的RECURSIVE方法,它返回数组中所有元素的总和(你的方法应该有一个数组作为它的参数,并且在一般情况下应该返回它的递归调用)。编写客户端类来测试所有方法,尤其是递归方法。

出于某种原因,我的toString方法有一个错误,我的递归方法也有一个错误,它应该返回数组的总和。我可能会对这些代码感到茫然,所以对任何帮助表示赞赏。

这是我到目前为止所拥有的......

客户类别(用于测试方法)

package weeklylab9;

public class Client {
    public static void main(String[] args) {
        ObjectClass numArray = new ObjectClass; //trying to create new object so I can use toString method
        numArray.toString(); //calling toString method?
    }
}

对象类

package weeklylab9;

import java.util.Arrays;
import java.util.stream.*;

public class ObjectClass {
    int[] numArray = {10,10,20,20,40};

    public int[] getArray() { //this is my accessor method
        return numArray;
    }

    public int[] setArray(int[] newa) { //this is my mutator method
        this.numArray = newa;
        return this.numArray;
    }

    public String toString() { //this is my toString method
        Arrays.toString(int[], numArray);
    }

    public int recursionSum(int[] numArray) { //this should be a recursion method that returns sum of array elements
        int sum = IntStream.of(numArray).sum();
        System.out.println("The sum is : " + sum);
    }
}

1 个答案:

答案 0 :(得分:0)

你的toString()方法应如下所示:

public String toString() {
        return Arrays.toString(numArray);
}

您错过了return语句,而且您对Arrays.toString()的调用有一个额外的错误参数。

使用递归计算总和是没有意义的,但这是一个解决方案: https://stackoverflow.com/a/20253717/8883654