分享

重写ToString和equals方法

 I_T_馆 2014-07-13

一、重写toString()方法

为什么要重写toString()方法  Object类里面定义toString()方法的时候返回的对象的哈希code码,这个haxicode码不能简单明了的表示出对象的属性。所以要重写toString()方法。

当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法

 

默认情况 System.out.println(对象名)或者System.out.println(对象名.toString())输出的是此对象的类名和此对象对应内存的首地址如果想自定义输出信息必须重写toString()方法

 

注意事项

 

1.必须被声明为public

 

2.返回类型为String

 

3.方法的名称必须为toString,且无参数

 

4.方法体中不要使用输出方法System.out.println()

二、重写equals()方法

为什么要重写equals()方法  Object类里面定义的equals比较的是对象的引用是否指向同一块内存地址。  一般情况下比较两个对象时比较他的值是否一致,所以要进行重写。重写之后是为了比较两个对象的value值是否相等。 特别指出,利用equals比较八大包装对象(如intfloat等)和String类(因为该类已重写了equalshashcode方法)对象时,默认比较的是值,在比较其它对象都是比较的引用地址。

注意事项

重写equals必须注意:
  *   1 自反性:对于任意的引用值xx.equals(x)一定为true
  *   2  对称性:对于任意的引用值x y,当x.equals(y)返回truey.equals(x)也一定返回true
  *   3 传递性:对于任意的引用值xy和z,如果x.equals(y)返回true,并且y.equals(z)也返回true,那么x.equals(z)也一定返   true
   * 4 一致性:对于任意的引用值x y,如果用于equals比较的对象信息没有被修改,
   *           多次调用x.equals(y)要么一致地返回true,要么一致地返回false
   *   5 非空性:对于任意的非空引用值xx.equals(null)一定返回false

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多