object

java体系中最底层的一个类,Object是所有类的父类,
所有的类都间接或直接的继承于Object
2)toString():用来描述当前对象的文本(String)信息,一般
是默认调用,返回的结果包名.类名@hashcode,结果没用,必须
重写(要把该类的对象显示出来)
重写toString():把属性信息描述出来

3)equals():判断两个对象是否相等
(1) 比较两个对象是否相等
"":比较的是引用值是否相等(堆当中的对象的地址是否相同)
"equals()":Object根上的类,equals比较就是"
",但是
我们认为的相等,一般指的属性,所以equals跟比较有关的时候,必须
重写

(2) 重写equals()方法,原则
equals在Object类中声明,默认的比较规则是:比较引用值
建议覆盖,实现对象的比较(比较对象的状态:属性,就是比较对象
的数据)。
覆盖规则:
a 自反性:对于任何非空引用值 x,x.equals(x)
都应返回 true。
b 对称性:对于任何非空引用值 x 和 y,当且仅当
y.equals(x) 返回 true 时,x.equals(y)
才应返回 true。
c 传递性:对于任何非空引用值 x、y 和 z,如果
x.equals(y) 返回 true,并且 y.equals(z) 返回
true,那么 x.equals(z) 应返回 true。
d 一致性:对于任何非空引用值 x 和 y,多次调用
x.equals(y) 始终返回 true 或始终返回 false,
前提是对象上 equals 比较中所用的信息没有被修改。
e 对于任何非空引用值 x,x.equals(null) 都应返回
false。

  1. hashCode()
    hashCode():返回就是当前对象在堆当中的地址值经过一系列
    转化得到的值,没有实际用处
    重写equals,必须同时重写hashCode()
    a 如果两个对象相等,equals返回true,而且必须要有相等
    hashCode(sun公司建议的)
    b 如果两个对象不相等,equals返回false,而且hashCode不
    相等
posted @ 2016-12-31 15:07  乱笙歌  阅读(197)  评论(0编辑  收藏  举报