java object 类 equals方法,tostring方法,hashcode方法

Object :java最底层的一个类,所有的类都会默认去继承
          Object,我们写的所有的类都是Object的子类
  会继承Object这个类所有的属性和所有的方法
 1) Object中有3个非常重要的方法
    hashcode(),  toString(),  equals(),sun都是建议
       我们写自己的类的时候,最好都重写上述3个方法
 2) toString():描述对象的方法,用一个文本信息来描述当前
       对象  ,一般是把属性显示出来.
    a) Object中toString的结果让我们很"崩溃"
       默认调用toString方法的时候,返回的结果:
       包名.类名@hashcode;
       必须重写该方法
    b) 当输出对象的名字的时候,系统就会默认去调用
    toString()方法
 
  3) "=="与equals()
   a)  "==" : 比较的是基本数据类型的对象,是否相等
  eg :
  Person person1 = new Person();
  Person person2 = new Person();
    person1和person2中保存的地址值,必然不同,不能
    使用"=="来判断两个引用类型是否相等
    b)  "equals":是sun专门用来判断两个对象是否相等
    方法 
    
    
  4) equals():
   a) equals()为什么需要重写?
   Object这个根类中equals()等价于“==” ,必须重写
   b)自反性:对于任何非空的引用值,自己跟自己比较永远
   都为true 
      eg  x.equals(x)---->true
      x == other 
   c)对称性:对于任何非空的引用值:
    x.equals(y)如果返回值是true,则y.equals(x)
    返回值一定是true
   d)传递性:对于任何非空的引用值:
    x.equals(y)返回值是true,y.equals(z)返回值也是
    true,x.equals(z)必然是true
   e)一致性:对于任何非空的引用值:
   x.equals(y)如果一次比较的结果是true的话,则不对
   x和y做任何的修改,无论比较多少次,则结果都是true
    f)任何对象跟null比较,永远都是false
    x.equals(null)--->false
 
  5) hashCode():
     a)hashCode:创建对象在堆内存中的地址值经过一系列
                 非常复杂的算法转化而来的一组数字,对开发来说无意义
     b)如果两个对象相等话,
      第1个条件:equals返回的结果必须是true
      第2个条件:必须要有相等的hashCode
     c)如果两个对象不相等,则hashCode值一定不等
     d)判断对象是否相等的时候,必须要重写equals和
       hashCode
      
  6) instanceof:判断一个对象是否是某个类的对象
  格式: 对象 instanceof 类名
       如果是返回true,否则false
       if(obj instanceof Car){
Car car1 = (Car) obj;
posted @ 2016-12-17 09:58  天涯海角路  阅读(379)  评论(0)    收藏  举报