一、Object类
1.什么是Object?
在Java中提供了一个Object类,他是所有类的父类,每个类都直接或间接继承自该类,因此该类也称为超类、基类或根类。
2.Object中的方法
Object是所有类的父类,它里面定义的方法可以被所有的类直接使用或重写。
3.关于==的说明
① 基本数据类型,比较两个值是否相等(与数据类型无关)
② 引用数据类型,比较两个对象的地址值是否相等。
==测试:
二、Object中常见方法的说明
1.equals()方法:
是一个方法,而非运算符,因此只适用于引用数据类型
public boolean equals(Object obj) { //Object类中的equals()方法定义
return (this == obj); //作用和==相同,用来比较两个对象的地址值是否相等
}
① 子类未对equals()进行重写:
用来比较两个对象的地址值是否相等
② 子类对equals()方法重写:
像String、Date、File、包装类等都重写了0bject类中的equals()方法。重写以后,比较两个对象的"实体内容"是否相同。
equals()和==的练习:
2.toString()方法
当我们输出一个对象的引用时,实际上就是调用当前对象的toString()方法,返回对象的字符串表示形式。
public String toString() { //Object中toString()方法的定义
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
像String、Date、File、包装类等都重写了0bject类中的toString()方法。使得在调用对象的toString()时,返回"实体内容"信息
toString()方法测试:
扩展面试题:
1. final、finally、finalize有什么区别?
> 2.equals()和==有什么区别?
equals:
equals()只适用于引用数据类型,未重写时Object类提供equals()方法时,用于判断两个引用数据类型的地址值是否相等。像String、Date、File、包装类等都重写了0bject类中的equals()方法,重写以后,比较两个对象的"实体内容"是否相同。
==:
① 基本数据类型,比较两个值是否相等(与数据类型无关)
② 引用数据类型,比较两个对象的地址值是否相等。