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;
    }

    }

  • 相关阅读:
    国外保健品品牌介绍
    海淘第一单
    表查询语句与方法
    表与表关系
    表完整性约束
    表字段数据类型
    存储引擎
    数据库之MySQL基本操作
    MAC重置MySQL root 密码
    进程池、线程池、协程
  • 原文地址:https://www.cnblogs.com/wym789/p/6492278.html
Copyright © 2011-2022 走看看