zoukankan      html  css  js  c++  java
  • Object.toString()详解

    Object.toString()方法详解

    Object类是所有类的父类,位于java.lang包中,是所有类的根。

    toString()是其中一个常用方法,也是在开发中经常使用的一个方法。

    平时我们如果在控制台直接打印输出一个对象的实例时,其实调用的就是Object类的toString()方法。

    类可以实现toString方法,在控制台中打印一个对象会自动调用对象类的toString方法,所以我们可以实现自己的toString方法在控制台中显示关于类的有用信息。

    Date now = new Date();
    System.out.println("now = " + now);//相当于下一行代码
    System.out.println("now = " + now.toString());

    在java中任何对象都会继承Object对象,所以一般来说任何对象都可以调用toString这个方法。这是采用该种方法时,常派生类会覆盖Object里的toString()方法。

    但是在使用该方法时必须要注意,必须要保证Object不能是null值,否则将抛出NullPointerException异常。

    JDK源码:

     1     /**
     2      * Returns a string representation of the object. In general, the
     3      * {@code toString} method returns a string that
     4      * "textually represents" this object. The result should
     5      * be a concise but informative representation that is easy for a
     6      * person to read.
     7      * It is recommended that all subclasses override this method.
     8      * <p>
     9      * The {@code toString} method for class {@code Object}
    10      * returns a string consisting of the name of the class of which the
    11      * object is an instance, the at-sign character `{@code @}', and
    12      * the unsigned hexadecimal representation of the hash code of the
    13      * object. In other words, this method returns a string equal to the
    14      * value of:
    15      * <blockquote>
    16      * <pre>
    17      * getClass().getName() + '@' + Integer.toHexString(hashCode())
    18      * </pre></blockquote>
    19      *
    20      * @return  a string representation of the object.
    21      */
    22     public String toString() {
    23         return getClass().getName() + "@" + Integer.toHexString(hashCode());
    24     }

    在进行String类与其他类型的连接操作时,自动调用toString()方法

    当我们打印一个对象的引用时,实际是默认调用这个对象的toString()方法

    当打印的对象所在类没有重写Object中的toString()方法时,默认调用的是Object类中toString()方法。

    当我们打印对象所 在类重写了toString(),调用的就是已经重写了的toString()方法,一般重写是将类对象的属性信息返回。

  • 相关阅读:
    C#使用DataSet Datatable更新数据库的三种实现方法
    WIN10 安装不了NET3.5
    Linux和Windows下ping命令详解(转:http://linux.chinaitlab.com/command/829332.html)
    ALLOCATE语句分配FORTRAN动态数组方法(转自http://blog.csdn.net/zhuxianjianqi/article/details/8067174)
    gfortran、g77等编译器中使用多个文件
    gfortran编译Fortran数组问题
    GRUB学习笔记(转自http://www.cnblogs.com/evilzy/archive/2008/03/30/1130173.html)
    ubuntu下gcc、g++和gfortran版本切换
    Beta冲刺Day1
    Beta冲刺预备
  • 原文地址:https://www.cnblogs.com/changyuyao/p/13678778.html
Copyright © 2011-2022 走看看