java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要介绍了 Java 中 equals() 方法重写实现代码的相关资料, 需要的朋友可以参考下
Java 中 equals() 方法重写实现代码Java 中的 equals() 方法是在 Object 类中定义,Object 类是所有类的父类。换句话说,任何类都隐含地继承了该方法。判断两个对象的内容是否相同,必须使用 equals() 方法,对于没有重写该方法的类,需要重写该方法。
重写 equals() 方法代码如下:
- /**
- *equlas()方法重写实例
- */
- class User {
- /**
- *方法描述:设置name值
- *输入参数:String name
- *返回类型:void
- */
- public void setName(String name) {
- this.name = name;
- }
- /**
- *方法描述:获取name值
- *输入参数:
- *返回类型:String
- */
- public String getName() {
- return name;
- }
- /**
- *方法描述:重写equals()方法
- *输入参数:Object obj
- *返回类型:boolean
- */
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (null == obj) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
- User user = (User) obj;
- if (!name.equals(user.name)) {
- return false;
- }
- return true;
- }
- private String name;
- }
- public class EqualsDemo {
- public static void main(String[] args) {
- User userA = new User();
- userA.setName("王明");
- User userB = new User();
- userB.setName("王明");
- User userC = new User();
- userC.setName("王亮");
- System.out.println("userA equals userB:" + userA.equals(userB));
- System.out.println("userA equals userC:" + userA.equals(userC));
- }
- }
运行结果如下所示:
总结:1. 对象内容的比较,需要使用 equals() 方法,若是对于已经重写该方法的类,例如 String 类,就无需再重写;若是没有重写,例如自定义的 User 类,就需要重写。
2.Java 语言中的 "==" 对于基本数据类型就是比较其值,而对于对象就是比较对象的引用。
来源: http://www.phperz.com/article/18/0106/357112.html