您好,欢迎访问一九零五行业门户网

如何正确使用Java Object类的equals()方法?

基本概念:
object类位于java.lang包中,java.lang包包含着java最基础和核心的类,在编译时会自动导入;
object类是所有java类的祖先。每个类都使用 object 作为超类。所有对象(包括数组)都实现这个类的方法。可以使用类型为object的变量指向任意类型的对象
equals()方法:比较两个对象是否同一
      如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等。如果两个引用对象指的是同一个对像,则称这两个变量同一。object类中定义的equals 函数原型为:
public boolean equals(object);他是判断两个对象是否同一,并不是是否相等
①只能处理引用类型变量
 ②在object类,发现equals()仍然比较的两个引用变量的地址值是否相等
package com.example.demo.test;public class person { private string username; private string age; public string getusername() { return username; } public void setusername(string username) { this.username = username; } public string getage() { return age; } public void setage(string age) { this.age = age; }}
package com.example.demo.test;public class test { public static void main(string[] args) { person p1 = new person(); person p2 = new person(); system.out.println(p1.equals(p2)); system.out.println(p1 == p2); /* * string类重写了object类的equals()方法,比较是两个对象的实体内容"是否完全相同。 */ string s1 = new string("aa"); string s2 = new string("aa"); system.out.println(s1.equals(s2)); system.out.println(s1 == s2); }}
从运行结果可以看到的是object中的equals方法比较的是两个对象是否同一,
而string类中的equals方法比较的是字符串的value是否相等。 请看string.java中equals的方法
public boolean equals(object anobject) { if (this == anobject) { return true; } if (anobject instanceof string) { string anotherstring = (string)anobject; int n = value.length; if (n == anotherstring.value.length) { char v1[] = value; char v2[] = anotherstring.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
以上就是如何正确使用java object类的equals()方法?的详细内容。
其它类似信息

推荐信息