zoukankan      html  css  js  c++  java
  • 软件构造--关于等价性和override的一点理解和总结

    在老师上课的ppt中,关于等价性和override overload方面还是有一点迷糊,所以来梳理一下,总结一下。其实也不是总结,就是分享一下这个菜鸡的心理路程。

    在刚刚理解到时觉得是正确的,但下课后和室友讨论时,又不太能理解这个重载和重写的区别。

    在没有学习这节课前,我是觉得这个考的不就是1+1=2吗,怎么会不相等,甚至不知道为什么要写一个hashcode。实践出真知,见下图:

    (写的时候变量名就随便写了,不太严谨见谅)

    答案是false,其实也不出意料,一般都是又特点的题老师才能专门提出来。但我还是觉得hashcode能有什么用,于是给他注释了:

    答案当然还是false,同时我也想是不是object的问题(这里可以看出来本人的基础知识叭太行),这里这样改不改其实都是一样的不会影响答案。

    于是我按照老师给的方法来进行

    还是不对,这是为什么呢,我们安装这个想法来说应该是对的,我就发现,我并没有理解到为什么要这么写。

    其实这里是对hashset的equals函数的override,同时必须要有hashcode的override,而hashset的equals的参数是object,而我这里把参数改变了,就变成了重载,当然就比较是错误的,因为根本没有将自己写的这个类给加载进去,比较还是按照hashset最原来的方式比较(必须是同一个才行)。这里就是我没有理解将equals的参数写错了。

    改正如下:

    注意重写和重载的区别:

  • 相关阅读:
    CodeForces 745C Hongcow Builds A Nation 并查集
    hdu 1542 Atlantis 矩形面积并
    CodeForces 741C Arpa’s overnight party and Mehrdad’s silent entering
    上海五校联赛 H 调和序列
    C++学习笔记之泛型算法
    hdu 6016 Count the Sheep
    操作系统 银行家算法
    计蒜之道复赛 B D F
    hdu 2966 In case of failure kdtree模板题
    poj 3468 A Simple Problem with Integers 降维线段树
  • 原文地址:https://www.cnblogs.com/lllllllm/p/14960409.html
Copyright © 2011-2022 走看看