为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

皈依舞 2023-06-08 17:08:26
我只想使用 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
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

要显示数组的元素,您应该使用

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

您的调用仅显示 int 数组的内存地址。


查看完整回答
反对 回复 2023-06-08
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

尝试这样的事情:

System.out.println(Arrays.toString(arrayElements.getArrayElements()));
查看完整回答
反对 回复 2023-06-08
?
冉冉说

TA贡献1877条经验 获得超1个赞

除了其他答案外,还解释了为什么您对第一眼的结果感到陌生。


每次你在那里调用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());

}

正如您在这里看到的,此方法以十六进制格式打印出类名、符号“@”和哈希码。


查看完整回答
反对 回复 2023-06-08
  • 3 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信