Java中equals方法重写的基本步骤

Java中equals方法的重写

Object类中的equals方法:

 public boolean equals(Object obj) {
        return (this == obj);//比较地址值
    }

Rewrite类中重写的Object类中的equals方法:

package test2;

public class Rewrite {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(Object obj) {
        /*return super.equals(obj);不能直接这样写的原因,不管返回的值是true还是false,都会直接跳出方法,后面的代码不在执行**/
        if (this == obj) {//Object类中的equals方法
            return true;
        }
        //重写的equals,扩展
        if (obj == null) {
            return false;
        }
        //进行类型判断
        if (obj instanceof Rewrite) {
            Rewrite rewrite = (Rewrite) obj;
            System.out.println(toString());//输出rewrite对象
            System.out.println(rewrite.toString());//输出rewrite1对象
			//判断name是否相同,根据需求扩展
            if (name != null) {
                if (rewrite.name != null) {

                    if (name.equals(rewrite.name)) {
                        return true;
                    }
                }

            }
        }
        return false;
    }
    @Override
    public String toString() {
        return "Rewrite{" +
                "name='" + name + '\'' +
                '}';
    }
}

测试类:

package test2;

public class Test {



    public static void main(String[] args) {
        Rewrite rewrite=new Rewrite();
        rewrite.setName("wang");
        Rewrite rewrite1=new Rewrite();
        rewrite1.setName("qio");



        if ( rewrite.equals(rewrite1)==true){

            System.out.println("是同一个");


        }else {
            System.out.println("不是同一个");
        }







    }


}

运行结果:

Rewrite{name='wang'}
Rewrite{name='qio'}
不是同一个

分享结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值