ToString的简单理解
当我们输出一个对象的引用时,实际上就是调用当前对象的toString()方法。
一.Object类中toString()的定义
- 返回该对象的字符串表示(默认表现形式:类的名称+@+把一个hashcode的值转成16进制的数字)。
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
//示例
public class ToString {
private int age;
private String name;
public ToString(int age, String name) {
super();
this.age = age;
this.name = name;
}
public static void main(String[] args) {
ToString t = new ToString(11,"lihua");
System.out.println(t);
System.out.println(t.toString());
}
}
//输出
day1.ToString@279f2327
day1.ToString@279f2327
二.重写toString()
已重写的类
像String、Date、File、包装类等都重写了toString()方法。
//在object类中已重写了toString方法
public String toString() {
return toString(value);
}
//示例
public static void main(String[] args) {
Integer i = new Integer(1);
System.out.println(i);
System.out.println(i.toString());
}
//输出
1
1
未重写的类
当我们输出一个对象的引用时,就会调用toString() 方法,若此时该类中toSring() 方法为重写,则无法输出“实体内容”。自定义类中只有重写toString()方法,当调用此方法时,才会返回对象的"实体内容"
public class ToString {
private int age;
private String name;
public ToString(int age, String name) {
super();
this.age = age;
this.name = name;
}
@Override
public String toString() {
return "age:" + age + "\tname:" +name;
}
public static void main(String[] args) {
ToString t = new ToString(11,"lihua");
System.out.println(t);
System.out.println(t.toString());
}
}
//输出
age:11 name:lihua
age:11 name:lihua
eclipse自动生成重写方法
- 在eclipse中可自动生成toString()方法的重写。