1、Object类
在JDk中提供一个Object类,它是所有类的父类,即每个类都直接或间接的继承自该类。
任何类中,都可以直接使用Object类中定义的方法
2、toString
toString是Object类中的一个方法
toString方法 打印的是包名+ 类名 @ hashCode(地址十六进制)
其实就是getClass().getName()+"@"+Integer.toHexString(hashCode())
1)getClass().getName()代表返回对象所属类的包名.类名,即pers.day02.Anima。
2)@对应@;
3)Integer.toHexString(hashCode())代表将对象的哈希值用16进制表示,其中hashCode()代表返回该对象的哈希值。
3、重写 toString
在实际开发中,通常希望toString()方法返回的不只是基本信息,所以Object的toString()方法通常会被重写
public class Person {
private String name;
private String idCard;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIdCard() {
return idCard;
}
public void setIdCard(String idCard) {
this.idCard = idCard;
}
public Person() {
}
public Person(String name, String idCard) {
this.name = name;
this.idCard = idCard;
}
// 方法重写,重写父类(Object(默认的父类))的 toString方法
public String toString() {
String classInfo = super.toString();
/*调用父类的toString方法
* toString方法 打印的是包名+ 类名 @ hashCode(地址十六进制)
* */
return "Person[name : " + name + ",idCard:" + idCard + "]" +"\n"+ classInfo;
// "\n"(换行)
}
public static void main(String[] args) {
Person p1 = new Person("章北海", "311709000910");
System.out.println(p1.getName() +"\n"+ p1.getIdCard());
// 当我们直接输出一个对象 就相当于调用此对象的toString方法 打印的是包名+ 类名 @ hashCode 十六进制
System.out.println(p1);
System.out.println("===========================");
System.out.println(p1.toString());
}
}
结果: