Object类中,equals

  • equals
    • public boolean equals​(Object obj)
      指示某个其他对象是否“等于”此对象。

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

      • 自反性 :对于任何非空的参考值xx.equals(x)应该返回true
      • 它是对称的 :对于任何非空引用值xyx.equals(y)应该返回true当且仅当y.equals(x)回报true
      • 传递性 :对于任何非空引用值xyz ,如果x.equals(y)回报truey.equals(z)回报true ,然后x.equals(z)应该返回true
      • 它是一致的 :对于任何非空引用值xy ,多次调用x.equals(y)始终返回true或始终返回false ,前提是未修改对象上的equals比较中使用的信息。
      • 对于任何非空的参考值xx.equals(null)应该返回false

      Objectequals方法实现了对象上最具区别的可能等价关系; 也就是说,对于任何非空引用值xy ,当且仅当xy引用同一对象( x == y具有值true )时,此方法返回true

      请注意,通常需要在重写此方法时覆盖hashCode方法,以便维护hashCode方法的常规协定,该方法声明相等对象必须具有相等的哈希代码。

      参数

      obj - 要与之比较的参考对象。

      结果

      true如果此对象与obj参数相同; 否则为false

      另请参见:

      hashCode()HashMap

    • public class qxy {
      
      	public static void main(String[] args) {
      		person p=new person("张三",18);
      		person p1=new person("张三",18);
      		System.out.println(p);
      		System.out.println(p.toString());
      		System.out.println(p.equals(p1));
      	}
      
      }
      public class person {
            private String name;
            private  int age;
      	public String getName() {
      		return name;
      	}
      	public void setName(String name) {
      		this.name = name;
      	}
      	public int getAge() {
      		return age;
      	}
      	public void setAge(int age) {
      		this.age = age;
      	}
      	public person(String name, int age) {
      		super();
      		this.name = name;
      		this.age = age;
      	}
      	public person() {
      		super();
      		// TODO Auto-generated constructor stub
      	}
      	public String toString() {
      		return "我是这样一个人"+this.name+this.age;
      	}
      	@Override
      	public boolean equals(Object obj) {
      		if (this == obj)
      			return true;
      		if (obj == null)
      			return false;
      		if (getClass() != obj.getClass())
      			return false;
      		person other = (person) obj;
      		if (age != other.age)
      			return false;
      		if (name == null) {
      			if (other.name != null)
      				return false;
      		} else if (!name.equals(other.name))
      			return false;
      		return true;
      	}
      	
      
      }
      我是这样一个人张三18
      我是这样一个人张三18
      true

猜你喜欢

转载自blog.csdn.net/weixin_43762083/article/details/119805794