1、概述
所有非基本类型的顶层父类,包括我们自定义类。
2、常用方法
1、equals
- 基本类型比较的是值
- (Object默认成员方法)引用类型比较的是地址值(逻辑地址)
因此,引用类型一般都对equals进行了重写。我们自定义类型进行比较也需要对equals进行重写。
注意事项:
- 与 == 的区别
- == 基本类型比较的是值
- == 引用类型比较的是地址值
- equeals重写之后一定用来比较类中成员的值,否则没有意义。
- equals方法被重写时,因为equals方法接受的参数是Object类型,因此不能调用子类特有的方法,需要在必要的时候向下转型。
- 在向下转型的过程中可能出现传递的参数可能不是相应的子类类型,因此需要
instanceof
进行判断。 - 为了避免方法传入null引发异常,因此需要在方法开始就判断是否为null。
- 为了提高效率还可以通过 == 判断是否为自身,省去后面的转型判断。
- 总结性解决:直接通过idea生成equals代码,快捷键:Alt + insert
2、toString
默认成员方法是返回对象的地址值