Java中直接输出一个类的对象
例如
package com.atguigu.java.fanshe; public class Person { String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //包含一个带参的构造器和一个不带参的构造器 public Person(String name, int age) { super(); this.name = name; this.age = age; } public Person() { super(); } }
调用的时候
public class ReflectionTest { @Test public void testNewInstance(){ Person per = new Person(); System.out.println(per); Person p = new Person("李华",20); System.out.println(p); } //结果是 //com.atguigu.java.fanshe.Person@4823d4c8 //com.atguigu.java.fanshe.Person@2866bb78
分析:
Java中直接输出一个类的对象的时候,会调用这个类的toString()方法,自己写的类没有覆盖这个方法的话就是继承Object类的这个方法,Object中toString()方法的实现是这样的:
getClass().getName() + "@" + Integer.toHexString(hashCode())。
后面跟的是这个类的哈希码值,如果希望这个类打印出你希望的格式,你就要覆盖toString方法。