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获得更有用的表示。

10-06 09:21