toString()方法的使用
1.当我们输出一个对象的引用时,实际上就是调用当前对象的toString();
2.object类中toString()的定义:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
3.像String、Date、File、包装类等都重写了Object类中的toString()方法。使得在调用对象的toString()方法时,返回“实体内容”信息。
4.自定义类也可以重写toString()方法,当调用此方法时,返回对象的“实体内容”。
Customer类:
package java5;
public class Customer {
private String name;
private int age;
public Customer() {
super();
}
public Customer(String name, int age) {
super();
this.name = name;
this.age = 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;
}
// 自动生成的equal()方法
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Customer other = (Customer) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
//手动生成toString()方法
// @Override
// public String toString() {
// return "Customer[name = " + name + ", age = " + age + "]";
// }
//自动生成的toString()方法
@Override
public String toString() {
return "Customer [name=" + name + ", age=" + age + "]";
}
}
ToStringTest类:
package java5;
import java.util.Date;
public class ToStringTest {
public static void main(String[] args) {
Customer cust1 = new Customer("Tom",21);
System.out.println(cust1.toString());//java5.Customer@6a5fc7f7//重写toString()方法后---->Customer[name = Tom, age = 21]
System.out.println(cust1);//java5.Customer@6a5fc7f7//重写toString()方法后---->Customer[name = Tom, age = 21]
String str = new String("Aa");
System.out.println(str);//Aa
Date date = new Date(123456789L);
System.out.println(date.toString());//Fri Jan 02 18:17:36 CST 1970
}
}
输出:
Customer [name=Tom, age=21]
Customer [name=Tom, age=21]
Aa
Fri Jan 02 18:17:36 CST 1970