zoukankan      html  css  js  c++  java
  • 重写Object的equals方法

    Object的equals比较两个对象是否相同,没有重写时比较的是内存地址是否相同(==)。

    但我们有时候比较的是两个对象中的属性是否相同,

    重写equals:

    package cn.sasa.demo1;
    
    public class Person {
    	private String name;
    	private int age;
    	
    	public Person(String name, int age) {
    		this.name = name;
    		this.age = age;
    	}
    	
    	public String getName() {
    		return this.name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	public int getAge() {
    		return this.age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	
    	//比较age是否相同
    	public boolean equals(Object obj) {
    		//return this == obj; //比较内存地址
    		if(obj == null) {
    			return false;
    		}
    		if(this == obj) {
    			return true;
    		}
    		if(obj instanceof Person) {
    			Person p = (Person)obj;
    			return this.getAge() == p.getAge();
    		}
    		return false;
    	}
    }
    

      

    package cn.sasa.demo1;
    
    public class Test {
    	public static void main(String[] args) {
    		Person p1 = new Person("sa", 12);
    		Person p2 = new Person("sasa", 121);
    		//p2 = p1;
    		boolean b = p1.equals(p2);
    		System.out.println(b);
    	}
    }
    

      

  • 相关阅读:
    CSS--盒子模型详解
    html元素分类
    HTML语义化(2016/3/16更新)
    如何在线预览github上的html页面?
    【鬼脸原创】谷歌扩展--知乎V2.0
    CSS选择器详解
    HTML基础知识
    python- 日志学习
    python-ddt 数据驱动测试
    python
  • 原文地址:https://www.cnblogs.com/SasaL/p/10106623.html
Copyright © 2011-2022 走看看