equals方法

个人是初学者,对Object认识尚微,不过对其几个重要的方法还是有一定的初步了解的

1、使用:

equals()方法在任何类中都可使用,其功能是比较两个同类型对象的地址是否相同。

例如:

    class Person {

private int age;

public Person(int age){

this.age=age;

}

}

public class Equals

{

public static void main(String[] args){

Person p1=new Person(20);

Person p2=new Person(19);

System.out.println(p1.equals(p2));

System.out.println(p1==p2);

}

}

2、扩展:

equals的扩展使用更为方便,例如:

class Person {

private int age;

public Person(int age){

this.age=age;

}

class equals(Person p)

//如果写class equals(Object obj) 是重写,写成 class equals(Person p)是重载,这里重载

{

class equals(Person p)

{

if(!(obj instanceof Person)){

return false;

//或者 throw new ClassCastException("转换异常");

return true

}

}

}

public class Equals

{

public static void main(String[] args){

Person p1=new Person(20);

Person p2=new Person(19);

System.out.println(p1.equals(p2));

System.out.println(p1==p2);

}

}

3、多态:

如果重写或者重载equals的话,则必须向上转型

equals的扩展使用更为方便,例如:

class Person {

private int age;

public Person(int age){

this.age=age;

}

class equals(Object obj)

//这里重写

{

class equals(Object obj)

{

if(!(obj instanceof Person)){

return false;

//或者 throw new ClassCastException("转换异常");

}

Person p=(Person)obj

this.age==p.age;

}

}

public class Equals

{

public static void main(String[] args){

Person p1=new Person(20);

Person p2=new Person(19);

System.out.println(p1.equals(p2));

System.out.println(p1==p2);

}

}


注:

1、p1==p2与equals都可以实现比较地址功能

2、equals可以进行深入的改进。详情参考上文的扩展内容

3、向下转型的条件是对象必须提前向上转型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值