美文网首页
读 effective java 中文版第二版读后感(第四天)

读 effective java 中文版第二版读后感(第四天)

作者: 隔壁小新 | 来源:发表于2019-09-27 16:20 被阅读0次
    *第九条 覆盖equals时总是要覆盖hashCode
         1.在应用程序执行期间,只要对equals方法的比较操作没有被修改,那么对同一个对象调用多次,hashCode方法都必须如一的返回相同的整数
        2.如果两个对象调用equals(Object)方法比较相等,那么调用两个对象任意一个的hashCode方法必须产生同样的整数结果
        3.如果两个对象调用equals(Object)方法比较不相等,那么调用任意的一个hashCode方法产生不同的整数结果。
    
    *第十条 始终要覆盖toString方法
        心得体会:
                1.原因:因为Object的toString()方法给出来的信息太过简单,所以本书中建议你去继承Object的toString()方法,并且重写toString()方法,提供更多的内容信息。
    
    第十一条 谨慎地覆盖clone
          拷贝的实现是通过继承Cloneable接口从而允许对象进行克隆操作
    

    1.简言之,所有实现了Cloneable接口的类都应该有一个共有的方法覆盖clone方法。此公有方法首先需要调用super.clone方法,然后修正任何需要修正的域。

     public class stack{
          private Object[] elements;
          private int size=0;
    @override
    public stack clone(){
        Stack stack=(Stack)super.clone();//正确复制
        stack.elements=elements.clone();//修正域
    return result;
    }
    }
    

    加入修正域的意义是,克隆的对象的elements与原来的对象的引用都指向一个地方,所以需要对elements进行单独的克隆修正
    心得体会:
    虽然本章节的内容比较多,就我个人的理解,此条需要表达的中心思想是:使我们如何使用克隆方法,其次是让我们了解克隆方法的一个缺陷,就是对于可以修改内容的引用对象,需要去进行一些修正后才能真正的实现clone方法。

    第十二条 考虑实现Comparable接口
         CompareTo方法并没有在Object类中,需要去继承Comparable接口去实现CompareTo方法 此方法小于,等于,大于分别是-1,0,1.
    

    compareTo继承需要满足的条件是:
    1.x.compareTo(y)==y.compareTo(x) 两边都是相等的。
    2.传递性:x.compareTo(y)>0 &&y.compareTo(z)>0 暗示着x.compareTo(z)。

    相关文章

      网友评论

          本文标题:读 effective java 中文版第二版读后感(第四天)

          本文链接:https://www.haomeiwen.com/subject/nszductx.html