zoukankan      html  css  js  c++  java
  • 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;
    }

    }

  • 相关阅读:
    css兼容性大坑
    JS获取元素CSS值
    calendar的一些操作
    java日期工具类
    redis的一些操作
    webstorm ES6 转 ES5
    基于时间的动画算法
    3434
    MySQL登陆知识
    MySQL密码知识点
  • 原文地址:https://www.cnblogs.com/wym789/p/6492278.html
Copyright © 2011-2022 走看看