Java之 “equals()”方法
这一节主要介绍下equals()的作用:
- Object类提供了equals()方法用于比较两个对象的地址是否相等。如果相等返回为true,否则为false。
- J2SDK提供的一些类,如String,Date等,这些类都重写了Object的equals方法,调用这些类的equals方法,X.equals(y),当x和y所引用的
对象是同一类对象且属性内容相等时(并不一定是相同对象),返回true否则返回false。 - 可以根据需要在用户自定义类型中重写equals方法。
具体操作以及详解:
package Demo1;//这是创建java项目时创建的包,这里我随意写的
public class Big{//定义的一个Big类
String name;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Big(String name ,int age){
this.name=name;//这里的this.name相当与开头Big类里面定义的name,和age,这里用做传参用,不懂可搜索this关键词的使用
this.age=age;
}
//重写equals方法。
@Override
public boolean equals(Object objecty) {
Big objecty1=(Big)objecty;//将ppd强制转换成Big类型,并重新定义一个ppd1
if(ppd1 instanceof Big){//判断ppd1是否是Big类
if(this.name.equals(ppd1.name) && this.age==ppd1.age){//这里有问题
return true;
}else{
return false;
}
}else{
return false;
}
}
}
以下为创建的测试class
package Demo1;
public class Test1 {
public static void main(String[] args) {
Big a = new Big("zx",18);
Big b = new Big("zx",18);
System.out.println(a.equals(b));
}
}
输出结果为true或者false;有不懂的可以留言哦!不能及时回复也请谅解!!!