java equals和tostring

是所有类中的父类,最大的超类,所有的类都继承他。

equals方法

java equals和tostring

比较2个对象是否相同,其实他是在比较两个对象的地址是否相同,在equals方法中我们用==来判断

但是比较2个地址相同实在没有什么意义,实际开发中我们可能会比较2个对象的属性是否一样,所以我们会在类中重写equals方法再调用

注意:在复写Object中的equals方法时,一定要注意public boolean equals(Object obj)的参数是Object类型,在调用对象的属性时,一定要进行类型转换,在转换之前必须进行类型判断。

比较2个人的年龄是否相同:

1 package com.orcale.demo01; 2 3 public class Person { 4 private String name; //首先定义人的属性年龄和名字 5 private int age; 6 public String getName() { 7 return name; 8 } 9 public void setName(String name) { 10 this.name = name; 11 } 12 public int getAge() { 13 return age; 14 } 15 public void setAge(int age) { 16 this.age = age; 17 } 18 //判断是否是同龄人 19 public boolean equals(Object obj) { //重写equals方法,形参传object类,父类的类型多态的 obj是传进来的一个地址,p2的地址。 20 if(obj==this){       判断一下传进来的地址是不是一样,如果是传一个p1,那就是p1==p1,不用再判断了就是ture 21 return true; 22 } 23 if(obj instanceof Person){ //先判断一下是不是传进来的obj是不是Person类,如果不是直接返回false,如果是就进方法体。 24 //向下转型              //因为是父类,但是我们要判断Person年龄属性,我们要把父类转换到子类,强转子类,然后判断 25 Person p =(Person)obj; 26 return this.age == p.age; 27 } 28 return false; 29 }33 } 34 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzsxjd.html