==与equals方法

equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。

==比较基本数据类型,如果两个值相同,则结果为true,比较的是栈空间中两个变量的的数值是否一致;

如果想要比较堆区中两个对象中的属性值是否一致则必须用到重写的equals方法(继承自Object类)。

/*

功能名称:==与equals方法
时间:2014.03.23
作者:张星晨
*/
class Person{
String idCard;

public Person(String idCard){
this.idCard = idCard;
}

//通过重写Object中equals()方法,可以达到比较两个对象的内容是否相同的目的
public boolean equals(Object obj){
//判断要比较的对象是不是空
if(obj == null){
return false;
}
//判断要比较的对象是不是当前对象本身
if(this == obj){
return true;
}
//判断要比较的对象是否是当前类Person的一个实例,如果是再比较两个对象的idCard
if(obj instanceof Person){
//向下强制类型转换
Person p = (Person)obj;
return this.idCard.equals(p.idCard);
}
return false;
}
//重写Object中的equals()方法

}

public class TestEquals{

public static void main(String[] args){

Person p1 = new Person("1001");
Person p2 = new Person("1001");
System.out.println("p1 == p2:" + (p1 == p2));//false(比较的是两个地址)
Person p3 = p1;
System.out.println("p1 == p3:" + (p1 == p3));//true(两个引用变量指向同一个对象)
System.out.println("p1.equals(p2):" + p1.equals(p2));//true(通过重写的equals方法比较的是两个对象中的属性值)
System.out.println("p1.equals(p3):" + p1.equals(p3));//true(直接是this == obj 同一个对象直接返回true)
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值