猿问

使用getter方法时显示数组类名的程序

我只想使用 getter 和 setter 方法扫描和显示数组。它在 setter 中工作正常,但是当我尝试调用 getter 方法而不是显示数组元素时,它显示数组类名。如何使用 getter 方法显示数组元素?


    public class ArrayElements {


    private int[] arrayElements;


    public int[] getArrayElements() {

        return this.arrayElements;

    }


    public void setArrayElements(int[] arrayElements) {

        this.arrayElements = arrayElements;

    }

}

public class BubbleSort {


    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        ArrayElements arrayElements = new ArrayElements();

        int[] element = new int[5];

        System.out.println("Enter Elements :");

        for (int i = 0; i < element.length; i++) {

            element[i] = scanner.nextInt();

        }

        arrayElements.setArrayElements(element);

        System.out.println(arrayElements.getArrayElements());

    }


}

Enter Elements :

10 20 0 45 56


[I@299a06ac


皈依舞
浏览 128回答 3
3回答

素胚勾勒不出你

要显示数组的元素,您应该使用System.out.println(Arrays.toString(arrayElements.getArrayElements()));您的调用仅显示 int 数组的内存地址。

斯蒂芬大帝

尝试这样的事情:System.out.println(Arrays.toString(arrayElements.getArrayElements()));

冉冉说

除了其他答案外,还解释了为什么您对第一眼的结果感到陌生。每次你在那里调用System.out.println(object)和传递一些东西时object,toString()都会在内部调用一个方法println()。所以调用等于System.out.println(object.toString())。这样做是为了获取您要打印的对象的有效字符串表示形式。数组是引用类型,它的类型是Object. 您不会重写toString()数组的方法,因此它的默认实现归结为Object类。Object类方法的实现toString():public String toString(){      return getClass().getName()+"@"+Integer.toHexString(hashCode());}正如您在这里看到的,此方法以十六进制格式打印出类名、符号“@”和哈希码。
随时随地看视频慕课网APP

相关分类

Java
我要回答