【发布时间】:2018-04-17 03:11:40
【问题描述】:
我试图弄清楚如何正确创建一个对象的实例,该实例将是一个 int 数组。另外,一旦我这样做了,我想尝试将数组显示为字符串,然后显示我的递归方法的总和,以便我可以测试我的对象类。
主要课程...
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?
numArray.recursionSum();
}
}
对象类...
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
return Arrays.toString(numArray);
}
public int recursionSum(int[] numArray, int n) { // this is the recursive method that returns sum of array elements
if (n == 0)
return numArray[n];
else
return numArray[n] + recursionSum(numArray, n-1);
}
}
【问题讨论】:
-
你似乎把事情复杂化了。这不是
ObjectClass[] numArray = new ObjectClass[];,而是更简单的ObjectClass numArray = new ObjectClass(); -
这有助于解决我最初的错误,但现在我收到一条错误消息,提示“ObjectClass 类型中的方法 recursionSum(int[], int) 不适用于参数 ()”
-
然后修复错误。它看起来不言自明,不是吗? --即,错误消息确切地告诉你你做错了什么——批判性地阅读它并使用它来帮助你修复你的代码。
-
我会改成类似的东西吗? numArray.recursionSum(numArray, ?) 我不知道为 int 传递什么
-
您的
ObjectClass已经包含一个数组。ObjectClass numArray = new ObjectClass()就足够了。
标签: java arrays string recursion methods