📄 equals与==区别.txt
字号:
equals是java.lang.Object定义的方法,Object是顶层类,所以所有的java对象都拥有一个方法equals()
不同的子类可以根据需要对equals()进行重载,例如,学生对象拥有学号和名字两个属性,如何定义两个学生对象是相等的对象呢?根据你的实际需要来定义
class Student
{
String name;
int id;
public boolean equals(Student other)
{
if(id == other.id) return true;
return false;
}
}//这个类定义了,id相同的两个学生对象就是相等的对象,无论名字是否相等
也可以定义成id和名字都相等,才是两个相等的学生对象,如下
class Student
{
String name;
int id;
public boolean equals(Student other)
{
if(id == other.id && name.equals(other.name)) return true;
return false;
}
在这里,你要明白equals是个方法,和其他的方法没有什么不同,定义什么逻辑
完全有你的需要而定。
==是运算符,比较两侧的值是否相等,对于原子类型(int/byte/short/long/float/double/char/boolean)是值得比较。
对象的引用类型存储对象的实际地址,所以比较的是两个地址,例如:
Student s1,s2;
s1 = new Student();
s2 = new Studnet();
s1==s2//s1 存一个学生的地址,s2存另一个学生对象的地址,现在比较他们的地址值(是否是同一个对象?)
s1.equals(S2) 只是调用了一个方法,执行预先定义好的逻辑。
java.lang.Object类中的equals(Object o)实现了两个对象是否是同一个对象的逻辑比较,是同一个对象返回true,不是返回假。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -