Object类的toString()方法
源码
public String toString()
返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:
该对象的字符串表示形式。
package com.kude.exercise;
public class ToStringTest {
static int i=1;
public static void main(String[] args) {
System.out.println("love "+new ToStringTest());
ToStringTest a=new ToStringTest();
a.i++;
System.out.println("me "+a.i);
}
public String toString(){
System.out.print("I ");
return "java";
}
}
运行结果:
I love java
me 2
解释:首先是一个静态常量 i,static修饰的成员或代码块在类加载的时候会进行内存申请,main()方法是程序的入口,第一行代码是输出语句,后面new了一个该类的对象,相当于调用该类的toString方法,打印I,返回字符串java与love拼接起来,最后打印出I love java,下一步对成员i加1,最后打印出me 2。
注意:java中输出对象名,相当于默认调用toString()方法
public static void main(String[] args) {
Demo demo=new Demo();
System.out.println(demo.toString());
System.out.println(demo);
}
运行结果:
com.kude.exercise.Demo@74a14482
com.kude.exercise.Demo@74a14482
验证:
public static void main(String[] args) {
System.out.println(new Demo());
}
public String toString(){
System.out.println("I");
return "java";
}
}
运行结果:
I
java
public class Demo {
public static void main(String[] args) {
System.out.println("hao "+new Demo());
}
public String toString(){
System.out.println("haha ");
return "xiaoxiao";
}
运行结果:
haha
hao xiaoxiao