• equals方法与==关系的总结


    /**
    * ==&&equals区别
    *
    * ==比较的是栈内存中的值
    * 对于基本类型数据,比较的是栈内存中的值
    * 对于引用数据类型,比较的是栈内存中的值(值的真是含义是一个地址)
    *
    *equals()比较的对象在堆内存成员变量的内容
    *Object的equals比较的是地址,作用和==相同的!
    * public boolean equals(Object obj) {
    return (this == obj);
    }

    *在使用equals方法比较引用对象时需重写equals方法
    */

    重写equals方法时需注意以下几点:

    public boolean equals(Object obj) {
    //an1.equals(an2)
    //an2就是obj an1就是this(当前对象)
    //思路:判断obj和this的color和age属性是否相同
    //如果相同,返回true 否则返回false
    //判断传入的值是否为空
    if(obj==null){
    return false;
    }
    //判断类型是否是Animal
    if(!(obj instanceof Animal)){
    return false;
    }

    //强制类型转换
    Animal other = (Animal)obj;
    //此时equals()方法比较的是成员变量String类型,不存在地址
    if(this.color.equals(other.color) && this.age==other.age){//
    return true;
    }else{
    return false;
    }

    }

  • 相关阅读:
    二叉查找树
    二叉树
    广度优先搜索
    深度优先搜索
    algorithm:next_permutation
    Grafana Labs 携手阿里云,将提供国内首款 Grafana 托管服务
    台积电TSMC一些技术特点
    TSMC台积电各种制程工艺技术
    激光雷达激烈竞争市场
    边端云处理器系列技术参数
  • 原文地址:https://www.cnblogs.com/wym789/p/6492278.html
Copyright © 2020-2023  润新知