Java Object类equals方法
短信预约 -IT技能 免费直播动态提醒
基本概念:
- 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 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方法的文章就介绍到这了,更多相关Java equals方法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341