java中直接打印对象,会调用对象.toString()方法。如果没有重写toString()方法会输出"类名+@+hasCode"值,hasCode是一个十六进制数
//没有重写toString()方法的类
class Person{
private String name;
//构造方法
public Person(String name){
this.name = name;
}
}
//重写了toString()方法的类
class Animal{
private String kind = "cat";
//重写的toString()方法 返回值为String
public String toString(){
return kind;
}
}
//测试类
public class PrintObject { public static void main(String[] args){
//测试重写了toString()方法的类
Person person = new Person("gxf");
System.out.println(person); //测试没有重写toString()方法的类
Animal animal = new Animal();
System.out.println(animal);
}
}
上面代码打印的结果是
Person@5a20d10a
cat