object类
1.1概述
Java.lang.object类是Java语言中的根类,即所有类(person、student)的父类。父类其中的方法子类都可以使用。在对象实例化的时候,最终找的是父类就是object。
1.1.1toString方法
1.String toString() 返回该对象的字符串表示
2.子类默认 继承了object类,所以可以使用object类中的toString方法
3.直接打印对象的名字,其实就是调用对象的toString方法
4.直接打印对象的地址值没有意义,需要重写object中的toString方法
5.看一个类是否重写了toString,直接打印这个类的对象即可,如果没有重写toString方法name打印的是对象的地址值。
1.1.2equals方法
方法摘要
1.public boolean equals(object obj):指示其他某个对象是否与此对象“相等”
2.调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的。这里的"相同"有默认和自定义两种方式
实现
1.子类默认 继承了object类,所以可以使用object类中的equals方法2.boolean equals(object obj):指示其他某个对象是否与此对象“相等”
3.equals方法源代码:
public boolean euqals(object obj){
return(this==obj);
}
参数:
object obj:可以传递任意的对象
比较运算符,返回的是一个布尔值 true/false
基本数据类型:比较的是值
引用数据类型:比较的是两个对象的地址值
重写
object类的equals方法,默认比较的是两个对象的地址值,没有意义,所以要重写equals方法,比较两个对象的属性
但是会存在问题:
1.隐含着一个多态
2.但是多态有弊端:无法使用子类特有的内容(属性和方法)
3.解决方法:使用向下转型(强转)把obj类型转换为person
1.1.3objects类
在JDK7添加了一个objects工具类,它提供了一些方法来操作对象,它由一些静态的实用方法组成,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashcode、返回对象的字符串表示形式、比较两个对象
1.objects类的equals方法:对两个对象进行比较,防止空指针异常
2.源码:
public static boolean equals(object a,object b){
return(ab)//(a!=null && a.euqals(b));
}
注:hashCode(): 用于返回对象的哈希值,哈希值是一个可正可负的整数值。
hashCode()和equale()
1.equale()用于确认两个对象是否相同。
2.hashCode()用于获取对象的哈希值,
3.哈希值相同的对象不一定equale()
4.equale()返回true的两个对象一定相同。