直接打印类,调用的是继承的Object类的toString()方法,Object类的toString()方法是这样实现的:getClass().getName() + "@" + Integer.toHexString(hashCode())。也就是类名+@+类的hashcode值,所以要重写toString()方法才能打印自己想要的内容。
具体看如下代码:
public class TestToString { private String a; public String getA() { return a; } public void setA(String a) { this.a = a; } public static void main(String[] args){ TestToString t=new TestToString(); t.setA("Bonnie"); System.out.println(t); } }
输出结果为:asi.TestToString@1175422
public class TestToString { private String a; public String getA() { return a; } public void setA(String a) { this.a = a; } @Override public String toString(){ return getA(); } public static void main(String[] args){ TestToString t=new TestToString(); t.setA("Bonnie"); System.out.println(t); } }
输出结果为:Bonnie