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