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

上一篇:Java中Date()类 日期转字符串、字符串转日期的问题(已解决)


下一篇:POJ 1426 Find The Multiple(数论——中国同余定理)