博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础学习总结(7)——Object类
阅读量:6273 次
发布时间:2019-06-22

本文共 1989 字,大约阅读时间需要 6 分钟。

hot3.png

一、Object类介绍

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

二、toString方法介绍

  

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

复制代码
1 package cn.galc.test; 2  3 public class TestToString { 4  5     public static void main(String[] args) { 6         Dog d = new Dog(); 7         /** 8          * 如果没有重写toString方法,那么输出来的默认的字符串内容是“类名+哈希编码”, 9          * 如:dog=cn.galc.test.Dog@150bd4d10          * 这里的d就是一个引用类型,打印的时候,这个引用类型d会自动调用toString()方法将自己转换成字符串然后再与字符串”d:=”相连,11          * 然后一起被打印出来。d为什么可以自动调用toString()方法呢,Dog类里面也没有声明这个toString()方法。12          * 这是因为toString()方法是Object类里面的方法,而所有的类都是从Object类继承下来的,13          * Dog类当然也不例外,所以Dog类继承了Object类里面的toString()方法,14          * 所以Dog类的对象当然可以直接调用toString()方法了。15          * 但是Dog类对继承下来的toString()方法很不满意,16          * 因为使用这个继续下来toString()方法将引用对象转换成字符串输出时输出的是一连串令人看不懂的哈希编码。17          * 为了使打印出来的信息使得正常人都能看得懂,因此要在Dog类里面把这个继承下来的toString()方法重写,18          * 使得调用这个toString()方法将引用对象转换成字符串时打印出来的是一些正常的,能看得懂的信息。19          * 在子类重写从父类继承下来的方法时,从父类把要重写的方法的声明直接copy到子类里面来,20          * 这样在子类里面重写的时候就不会出错了。21          */22         System.out.println("dog="+d);//打印结果:dog=I’m a cool Dog23     }24 }25 26 class Dog{27     /**28      * 在这里重写了Object类里面的toString()方法后,29      * 引用对象自动调用时调用的就是重写后的toString()方法了,30      * 此时打印出来的显示信息就是我们重写toString()方法时要返回的字符串信息了,31      * 不再是那些看不懂的哈希编码了。32      */33     public String toString() {34         return "I’m a cool Dog";35     }36 }
复制代码

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

转载于:https://my.oschina.net/zhanghaiyang/blog/593364

你可能感兴趣的文章
虚拟机设置bios第一启动为u盘
查看>>
Day4---D3:法律问题,合同和电子举证
查看>>
[译]搭建账户系统
查看>>
三种类型的DNS攻击以及应对方法
查看>>
Docker Swarm vs Kubernetes
查看>>
电商网站的支付接入该怎么做呢?
查看>>
六顶帽子思考法的好处
查看>>
关于Expression Tree和IL Emit的所谓的"性能差别"
查看>>
svn导出项目后报错汇总
查看>>
SAP数字化转型成不成功用事实说话:S/4HANA已获得3200家客户
查看>>
《社交网站界面设计(原书第2版)》——3.15 你是否在犯4种常见的用户onboarding错误...
查看>>
Salesforce即将推出Einstein人工智能CRM平台
查看>>
中国人工智能学会通讯——融合经济学原理的个性化推荐 1.4 未来展望
查看>>
美最大征信机构Equifax数据泄露 1.43亿美国公民个人信息被“曝光”
查看>>
如何在Linux命令行下浏览天气预报
查看>>
中国人工智能学会通讯——深度学习的迁移模型 一、迁移学习的三大优点
查看>>
Mellanox公司计划利用系统芯片提升存储产品速度
查看>>
《中国人工智能学会通讯》——12.16 时空众包工作流程
查看>>
英国脱欧:3/4的技术初创公司将面临严峻时期
查看>>
JavaScript API 设计原则
查看>>