Java之this关键字对象比较

       世界上没有两片相同的树叶!一片桂花树叶是一个对象,世界上不存在两片相同的桂花树叶。生活中,比较同类对象是一个常见话题,比较常常令人沮丧或兴奋。例如,比较两个国家的科技水平、比较两个人的信息等。借用this关键字能实现两个对象的比较,一般情况是两个同类对象比较。

       下列程序演示了对象比较。第18行定义compare()方法实现当前对象this与另一个对象other进行数据成员的比较,如果所有数据成员信息相同返回true,否则返回false;第33行p1.compare(p2),p1是this,p2是other;第34行比较p1与p2的引用(地址),显然p1与p2是不同的两个对象,输出false。

package chapter02;
class Person{
    private String name;
    private String sex;
    private int age;
    public Person() {}
    public Person(String name,String sex,int age){
        super();
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    public void display(){
        System.out.println("姓名:" + this.name);
        System.out.println("性别:" + this.sex);
        System.out.println("年龄:" + this.age);
    }
    public boolean compare(Person other){
        boolean flag = false;
        if(other == null)
            return false;
        if(this.name.compareToIgnoreCase(other.name) == 0 & this.sex.compareToIgnoreCase(other.sex) == 0 & this.age == other.age)
            flag = true;
        return flag;
    }
}
public class example16 {
    public static void main(String[] args) {
        Person p1 = new Person("孙悟空","男",25);
        Person p2 = new Person("孙悟空","男",25);
        p1.display();
        p2.display();
        boolean comp = p1.compare(p2);
        boolean compAddress = (p1 == p2);
        System.out.println("p1与p2比较内容的结果:" + comp);
        System.out.println("p1与p2比较引用的结果:" + compAddress);
    }
}

       程序运行结果如下。

      比较对象有两个角度:比较对象内容;比较对象引用。上述程序中第33行调用compare()方法比较p1与p2的内容,第34行p1==p2比较p1与p2的引用。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值