JavaObject.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源码:

/**
     * Returns a string representation of the object. In general, the
     * {@code toString} method returns a string that
     * "textually represents" this object. The result should
     * be a concise but informative representation that is easy for a
     * person to read.
     * It is recommended that all subclasses override this method.
     * 

* The {@code toString} method for class {@code Object} * returns a string consisting of the name of the class of which the * object is an instance, the at-sign character `{@code @}', and * the unsigned hexadecimal representation of the hash code of the * object. In other words, this method returns a string equal to the * value of: *

*
     * getClass().getName() + '@' + Integer.toHexString(hashCode())
     * 
* * @return a string representation of the object. */ public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }

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

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

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

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

 

你可能感兴趣的:(java,object,android,jvm,c#)