例如
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方法。