hello!jw 2021-10-31 01:21 采纳率: 78.6%
浏览 72
已结题

为什么用for遍历语句输出来是地址乱码

img

img

为什么用for遍历输出来是那种地址乱码,老师又要求必须用这种输出方式,谢谢帮忙看看

  • 写回答

3条回答 默认 最新

  • 穆瑾轩 2021-10-31 11:47
    关注

    你打印的是对象,自定义类默认都继承了Object类,直接打印对象,其实调用的是:Object的toString()方法, getClass().getName() + "@" + Integer.toHexString(hashCode());即类名+内存地址。如果需要自定义打印内容,需要在Book类中重写toString(),即可打印自己想要的效果。
    System.out.println(Object obj) 源码如下:

     public void println(Object x) {
            String s = String.valueOf(x);
            if (getClass() == PrintStream.class) {
                // need to apply String.valueOf again since first invocation
                // might return null
                writeln(String.valueOf(s));
            } else {
                synchronized (this) {
                    print(s);
                    newLine();
                }
            }
        }
    // String.valueOf(Object obj)
     public static String valueOf(Object obj) {
            return (obj == null) ? "null" : obj.toString();
        }
    //obj.toString()
    public String toString() {
            return getClass().getName() + "@" + Integer.toHexString(hashCode());
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月8日
  • 已采纳回答 10月31日
  • 修改了问题 10月31日
  • 创建了问题 10月31日

悬赏问题

  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作