Java中Object toString方法简介_动力节点Java学院整理

 更新时间:2017年05月05日 10:08:15   投稿:mrr  
Object类在Java里面是一个比较特殊的类,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。接下来通过本文给大家介绍Object toString方法,需要的的朋友参考下吧

一、Object类介绍 

Object类在Java里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗。所有的类,不管是谁,都是从它继承下来的。

二、toString方法介绍 

一个字符串和另外一种类型连接的时候,另外一种类型会自动转换成String类型,然后再和字符串连接。基础的数据类型int,float,double转换成字符串比较简单,按照它们的数字转换过来就成了,可以引用类型呢,Person p = new Person();一个字符串加上这个p,你就不知道要怎么把这个p转换成字符串了,因为这个p是一个引用类型。 p = new Person();

public class TestToString {
  public static void main(String[] args) {
     Dog d = new Dog();
    /**
     * 如果没有重写toString方法,那么输出来的默认的字符串内容是“类名+哈希编码”,
     * 如:dog=cn.galc.test.Dog@150bd4d
     * 这里的d就是一个引用类型,打印的时候,这个引用类型d会自动调用toString()方法将自己转换成字符串然后再与字符串”d:=”相连,
     * 然后一起被打印出来。d为什么可以自动调用toString()方法呢,Dog类里面也没有声明这个toString()方法。
     * 这是因为toString()方法是Object类里面的方法,而所有的类都是从Object类继承下来的,
     * Dog类当然也不例外,所以Dog类继承了Object类里面的toString()方法,
     * 所以Dog类的对象当然可以直接调用toString()方法了。
     * 但是Dog类对继承下来的toString()方法很不满意,
     * 因为使用这个继续下来toString()方法将引用对象转换成字符串输出时输出的是一连串令人看不懂的哈希编码。
     * 为了使打印出来的信息使得正常人都能看得懂,因此要在Dog类里面把这个继承下来的toString()方法重写,
     * 使得调用这个toString()方法将引用对象转换成字符串时打印出来的是一些正常的,能看得懂的信息。
     * 在子类重写从父类继承下来的方法时,从父类把要重写的方法的声明直接copy到子类里面来,
     * 这样在子类里面重写的时候就不会出错了。
     */
     System.out.println("dog="+d);//打印结果:dog=I'm a cool Dog
   }
 }
 class Dog{
   /**
   * 在这里重写了Object类里面的toString()方法后,
   * 引用对象自动调用时调用的就是重写后的toString()方法了,
   * 此时打印出来的显示信息就是我们重写toString()方法时要返回的字符串信息了,
   * 不再是那些看不懂的哈希编码了。
   */
   public String toString() {
     return "I'm a Dog";
   }
 }

任何一个类都是从Object类继承下来的,因此在任何一个类里面都可以重写这个toString()方法。toString()方法的作用是当一个引用对象和字符串作连接的时候,或者是直接打印这个引用对象的时侯,这个引用对象都会自动调用toString()方法,通过这个方法返回一个表示引用对象自己正常信息的字符串,而这个字符串的内容由我们自己去定义,默认的字符串内容是“类名+哈希编码”。因此我们可以通过在类里面重写toString()方法,把默认的字符串内容改成我们自己想要表达的正常信息的字符串内容。

以上所述是小编给大家介绍的Java中Object toString方法简介_动力节点Java学院整理,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Java前后端分离的在线点餐系统实现详解

    Java前后端分离的在线点餐系统实现详解

    这是一个基于SpringBoot+Vue框架开发的在线点餐系统。首先,这是一个前后端分离的项目。具有一个在线点餐系统该有的所有功能,感兴趣的朋友快来看看吧
    2022-01-01
  • Springboot实现动态定时任务流程详解

    Springboot实现动态定时任务流程详解

    通过重写SchedulingConfigurer方法实现对定时任务的操作,单次执行、停止、启动三个主要的基本功能,动态的从数据库中获取配置的定时任务cron信息,通过反射的方式灵活定位到具体的类与方法中
    2022-09-09
  • Springmvc自定义异常处理器实现流程解析

    Springmvc自定义异常处理器实现流程解析

    这篇文章主要介绍了Springmvc自定义异常处理器实现流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Spring Security+JWT实现认证与授权的实现

    Spring Security+JWT实现认证与授权的实现

    本文主要介绍了Spring Security+JWT实现认证与授权的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • IDEA 集成 Docker 插件一键部署 SpringBoot 应用小结

    IDEA 集成 Docker 插件一键部署 SpringBoot 应用

    通过本文介绍的方法,我们期望能帮助开发者更轻松地在IDEA中实现Spring Boot应用的Docker化部署,为现代软件开发提供更便捷的解决方案,感兴趣的朋友一起看看吧
    2023-11-11
  • Java中短路运算符与逻辑运算符示例详解

    Java中短路运算符与逻辑运算符示例详解

    这篇文章主要给大家介绍了关于Java中短路运算符与逻辑运算符的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 5分钟快速了解String.trim()到底做了什么事

    5分钟快速了解String.trim()到底做了什么事

    trim方法一般用来去除空格,但是根据JDK API的说明,该方法并不仅仅是去除空格,它能够去除从编码'\u0000'至'\u0020'的所有字符,这篇文章主要给大家介绍了如何通过5分钟快速了解String.trim()到底做了什么事,需要的朋友可以参考下
    2021-11-11
  • Java并发之Condition案例详解

    Java并发之Condition案例详解

    这篇文章主要介绍了Java并发之Condition案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • java连接FTP服务器图文教程

    java连接FTP服务器图文教程

    这篇文章主要给大家介绍了关于java连接FTP服务器的相关资料,Ftp是一种常见的文件存储服务器,在很多的项目中都有使用,方便存储各种格式的文件,使用java连接ftp文件服务器也是常用的工具类,需要的朋友可以参考下
    2023-08-08
  • Springboot静态资源的访问方法介绍

    Springboot静态资源的访问方法介绍

    最近在做SpringBoot项目的时候遇到了“白页”问题,通过查资料对SpringBoot访问静态资源做了总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08

最新评论