Object的equals方法和toString方法
2017-06-11 10:42
323 查看
Object:java语言中的上帝,所有类的父类,其中定义了所有对象都具备的。
Object类是Java中唯一没有父类的类
Object类是类层次结构的根,java中所以的类从根本上都继承这个类,其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。
例子举例Object的equals方法和toString方法
运行结果
Object类是Java中唯一没有父类的类
Object类是类层次结构的根,java中所以的类从根本上都继承这个类,其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。
例子举例Object的equals方法和toString方法
class Person extends Object { private int age; private String name; Person(int age,String name) { this.age=age; this.name=name; } //定义一个方法,判断两个Person对象是否同一个人 /* * (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) * 不用自定义方法,判断对象是否相同,因为Object父类中,已经定义了这样的方法 * 直接使用就好,但是判断的内容是根据Person的特点定义的 * 需要保留父类的功能声明,定义子类功能的特有内容 * 使用覆盖 */ public boolean equals(Object obj) //Object obj=p2;-->Object obj=new Person(); { //提高点效率,如果两个引用指向同一个对象,不用再转换并比较内容了,直接判断地址 if(this==obj) return true; //如果用obj.age是错误的,因为Object中没有age属性 //想要使用子类对象的特有属性必须向下转型 if(!(obj instanceof Person)) return false; Person p=(Person)obj; //如果判断姓名字符串是否相同,不要用==,字符串本身就是一个对象,使用String类的equals方法判断 return this.name.equals(p.name) && this.age==p.age; } //建立Person对象特有的字符串表现形式。只要覆盖toString方法即可 public String toString() { return "Person[age="+this.age+",name="+this.name+"]"; } } public class Obj { public static void main(String[] args){ Person p1=new Person(24,"lisi"); Person p2=new Person(22,"lisi"); Person p3=new Person(24,"lisi"); System.out.println(p1.toString()); System.out.println(p1.equals(p3)); System.out.println(p1.equals(p2));//判断的是对象的内容 System.out.println(p1==p2);//判断的是对象的地址 } }
运行结果
Person[age=24,name=lisi] true false false
相关文章推荐
- Object 开发中常用的重写方法总结toString,equals,hashCode,compareTo
- 复写Object超类的equals,hashCode,toString方法
- Java记录 -57- Object的equals、hashcode和toString方法
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)
- Object类之toString方法和equals方法
- 《Java核心技术》第10版读书笔记之Chap5(3)——Object类及其equals、hashCode与toString方法
- Object的方法equals,hashCode,toString,clone。另外Comparable接口的方法
- 面向对象第九课,面向对象三大基本特征,继承,Object用法,toString和equals方法
- 为什么SpringAOP使用JDK动态代理时好像没有代理Object.[equals()、hashCode()、toString()]这三个方法
- Object类的toString()和equals()方法
- JAVA Object对象(toString、equals、hashCode方法)、String类、StringBuffer、StringBuider、System、Runtime、Date、Mat
- Object 开发中常用的重写方法总结toString,equals,hashCode,compareTo
- Object的toString方法:Object的equals方法:System类的概念和构造:冒泡排序,自动装箱拆箱, Date类的常用方法:6 SimpleDateFormat的概述:
- Java记录 -57- Object的equals、hashcode和toString方法
- Object常用方法介绍及注意事项equals(),hashCode(),getClass(),toString()
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解
- JAVA初学之Object类之toString方法、equals方法
- 关于Object类的equals方法和hashCode方法
- 整理 Object 类(为什么重写 equals 和 hashCode 方法)
- .NET中Object.Equals()方法与Object.ReferenceEquals()方法