zoukankan      html  css  js  c++  java
  • equals方法

    判断两个对象是否相等;

    基本数据类型:比较的是数值;

    引用数据类型:比较的地址值

    package day22;

    import java.util.Objects;

    public class person {
    String name;
    int age;

    public person(String name, int age) {
    this.name = name;
    this.age = age;
    }

    /*对equals方法进行重写,使得可以比较两个对象是数值;

    */
    @Override
    public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    person person = (person) o;
    return age == person.age &&
    Objects.equals(name, person.name);
    /*Object方法容忍空指针;
    其源代码如下
    public static boolean equals(object a,object b)
    {
    boolean b=(a==b)||(a!=null&&a.equals(b));
    return b;
    }
    */
    }

    @Override
    public int hashCode() {
    return Objects.hash(name, age);
    }
    }
    package day22;

    public class equlas {
    public static void main(String[] args) {
    person p1=new person("胡澳宾",18);
    person p2=new person("张天爱",18);
    boolean b=p1.equals(p2);
    System.out.println(b);
    }
    }
    注意事项:

    equals 方法在非空对象引用上实现相等关系:

    • 自反性:对于任何非空引用值 xx.equals(x) 都应返回 true
    • 对称性:对于任何非空引用值 xy,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true
    • 传递性:对于任何非空引用值 xyz,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true
    • 一致性:对于任何非空引用值 xy,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
    • 对于任何非空引用值 xx.equals(null) 都应返回 false

    Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 xy,当且仅当 xy 引用同一个对象时,此方法才返回 truex == y 具有值 true)。

  • 相关阅读:
    厂商前缀
    文本阴影和边框阴影
    2D转换
    overflow属性
    margin属性
    CSS圆角边框
    浮动定位
    文档流定位
    position属性
    选择器二
  • 原文地址:https://www.cnblogs.com/huaobin/p/13573637.html
Copyright © 2011-2022 走看看