Object类的toString()和equals()方法
2017-12-25 18:15
375 查看
Object类:
Object类是Java类的根基类(祖先类),所有类都直接或者间接的继承Object类。Object类的构造方法只有一个,并且是无参构造,子类默认调用父类的无参构造。
接下来总结一下Object类的两个方法toString()和equals():
1)toString()
Object类中定义有public String toString()方法,其返回值是String类型,描述当前对象的有关信息。
即如果直接打印某对象的引用,则默认会调用这个对象的toString()方法,默认打印的内容中包含这个引用所指向的内存地址(类的全路径+‘@’+哈希值的十六进制)。
所以这个表示其实是没有意义的,我们可以根据需要在用户自定义类中重写toString()方法。
例如:如果我们要获取一个对象所包含的属性值(姓名、性别、年龄),那么可以重写父类的toString()方法:
@Override public String toString() { return "Student [name=" + name + ", age=" + age + ", sex=" + sex + "]"; }
2)equals()
Object类中定义有public Boolean equals(Object obj)方法,提供定义对象是否“相等”的逻辑。默认情况下比较的是地址值是否相等,而比较地址值是没有意义的,所以一般子类也会重写该方法。
例如:String类中已经重写了equals(Object obj)方法,重写后的方法比较的是两个字符串的内容是否相等。
当然我们也可以根据需要在用户自定义类中重写equals方法。
最后总结一下 ==和equals()的区别:
1)==
基本类型:比较的是值是否相等
引用类型:比较的是地址值是否相同
2)equals()
只能比较引用类型。默认情况下,比较的是地址值是否相同。但是我们可以根据需要重写该方法。
相关文章推荐
- Java记录 -57- Object的equals、hashcode和toString方法
- Object类之toString方法和equals方法
- Java记录 -57- Object的equals、hashcode和toString方法
- Object的equals方法和toString方法
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)
- JAVA初学之Object类之toString方法、equals方法
- Object常用方法介绍及注意事项equals(),hashCode(),getClass(),toString()
- Object的方法equals,hashCode,toString,clone。另外Comparable接口的方法
- Object 开发中常用的重写方法总结toString,equals,hashCode,compareTo
- 复写Object超类的equals,hashCode,toString方法
- JAVA Object对象(toString、equals、hashCode方法)、String类、StringBuffer、StringBuider、System、Runtime、Date、Mat
- 为什么SpringAOP使用JDK动态代理时好像没有代理Object.[equals()、hashCode()、toString()]这三个方法
- 《Java核心技术》第10版读书笔记之Chap5(3)——Object类及其equals、hashCode与toString方法
- Object的toString方法:Object的equals方法:System类的概念和构造:冒泡排序,自动装箱拆箱, Date类的常用方法:6 SimpleDateFormat的概述:
- Object 开发中常用的重写方法总结toString,equals,hashCode,compareTo
- 面向对象第九课,面向对象三大基本特征,继承,Object用法,toString和equals方法
- Effective Java(覆盖equals时总要覆盖hashcode方法、始终要覆盖toString)
- 11.28_常见对象(Object类的equals()方法).avi
- Java 将equals override为比较所有object的方法