public class Arrys {
private int[] nums;
//Step 3
public Arrys (int arrySize) {
nums = new int[arrySize];
}
public int [] getNums (){
return nums;
}
}
测试类别:
public class TestArrys
{
public static void main(String args[])
{
//Step 4
Arrys arry = new Arrys(10);
System.out.println("\nStep4 ");
for(int index = 0; index < arry.getNums().length; index++) {
System.out.print(arry.getNums());
}
}
}
这非常简单,这就是为什么我认为我做的事情根本上是错误的。我只想显示数组的值。
这就是我得到的。我完全迷失了自己,我的书中没有任何东西可以解释这一点,也无法使用谷歌搜索来解决。
步骤4
[I @ 1ac88440 [I @ 1ac88440 [I @ 1ac88440 [I @ 1ac88440 [I @ 1ac88440 [I @ 1ac88440 [I @ 1ac88440 [I @ 1ac88440 [I @ 1ac88440]
最佳答案
您正在尝试多次打印数组本身。这段代码:
for(int index = 0; index < arry.getNums().length; index++) {
System.out.print(arry.getNums());
}
应该(可能)是这样的:
for(int index = 0; index < arry.getNums().length; index++) {
// println instead of print to get one value per line
// Note the [index] bit to get a single value
System.out.println(arry.getNums()[index]);
}
或者更简单地说:
for (int value : arry.getNums()) {
System.out.println(value);
}
当您在数组上调用
toString()
时,它返回类似[I @ 1ac88440的信息,其中[表示它是一个数组,我表示该数组元素的类型为int,而@xxxxxxxx是内存中的地址。这是诊断性的,但在大多数情况下并没有真正帮助。使用
Arrays.toString
获得更有用的表示。