2019独角兽企业重金招聘Python工程师标准>>>

一、Object类介绍

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

二、toString方法介绍

  

  一个字符串和另外一种类型连接的时候,另外一种类型会自动转换成String类型,然后再和字符串连接。基础的数据类型int,float,double转换成字符串比较简单,按照它们的数字转换过来就成了,可以引用类型呢,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@150bd4d
10          * 这里的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 Dog
23     }
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/595079

Java基础学习总结(7)——Object类相关推荐

  1. Java基础学习——第十章 枚举类注解

    Java基础学习--第十章 枚举类&注解 一.枚举类(enum) 1. 枚举类的概念 枚举类:类的对象只有有限个,确定的 线程状态:创建.就绪.运行.阻塞.死亡 当需要定义一组常量时,强烈建议 ...

  2. java基础学习整理(一)

    java基础学习整理(一) lesson1: D0s命令: 1.回到根目录,>cd \ 2.复制命令行下的内容,右击标记所要复制的内容,这样就已经复制好了,右击粘贴就可以了. 3.查看,设置环境 ...

  3. 尚学堂JAVA基础学习笔记_2/2

    尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...

  4. Java基础学习(9)

    Java基础学习 一.常用方法(API) 1.1 Math 1.2 System 1.3 Runtime 1. 4 .object 1.5 Objects 1.6 BigInteger BigInte ...

  5. Java基础学习Day09--字符串

    Java基础学习Day09--字符串 一.简介: 二.String类字符串 三.String字符串的存储原理 四.字符串常用方法 1.equals()方法 2.字符串的搜索 3.截取子字符串 4.去除 ...

  6. java基础学习-4

    Java基础学习-4 static 注意事项 重新认识main方法 继承 小练习 子类到底能继承父类中的哪些内容(第126集)*** 继承过程中成员变量和成员方法的访问特点 小练习 小总结 构造方法的 ...

  7. Java基础学习——第六章 面向对象编程(下)

    Java基础学习--第六章 面向对象编程(下) 一.关键词:static 1. static关键字的引入 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new ...

  8. java基础学习-6

    Java基础学习-6 双列集合 Map的常见API Map的遍历方式 HashMap 小练习 LinkedHashMap TreeMap TreeMap--小练习1 TreeMap--小练习2 Tre ...

  9. Java基础语法(七)——类和对象

    文章目录 Java基础语法(七)--类和对象 一.类和对象的初步认识 二. 类和类的实例化 1.类的定义 2.实例化对象 3.如何使用类中的数据 三. 类的成员 1. 字段/属性/成员变量 (1)实例 ...

  10. JAVA基础学习精简心得笔记整理

    JAVA基础学习精简心得笔记整理 配置java环境变量 Java的运行过程  基本数据类型 引用数据类型 逻辑运算符 数组 方法重载 封装 继承 多态 多态的作用 单例设计模式 接口interface ...

最新文章

  1. CMS 被废弃了,该怎么办呢?
  2. xcode修改时间后就要重新编译_iOS 微信编译速度优化分享
  3. 谈谈相控阵雷达为何如此先进
  4. SQL on Linux Run on Docker
  5. php 正则表达式 后向引用,php正则表达式 后向引用~ | 学步园
  6. 反向传播算法学习笔记
  7. 装箱问题(信息学奥赛一本通-T1295)
  8. javah命令 C Header and Stub File Generator
  9. 腾讯云数据库三大产品线统一升级为TDSQL,这是要集中力量干大事! ​
  10. PAT1087 All Roads Lead to Rome (30)(最短路径+dfs+回溯)
  11. 评判云服务靠谱程度 -- Coding 安全那些事
  12. webAppbuilder微件使用教程3 地理处理微件
  13. 51nod1433--简单数学
  14. WPS多版本残留_软件分享猫 wps会员的获取
  15. Java编译运行命令
  16. 计算机上面的清除键是什么符号,电脑上删除键是哪一个
  17. 最新王通《搜索排名引爆点》课值得学习吗
  18. python中lstrip_Python中的lstrip()方法使用简介
  19. 彩虹登录聚合中转API程序网站源码「免授权」
  20. 【推免】笔试+机试+面试 准备

热门文章

  1. 【强化学习】数据科学,从计算到推理
  2. 全球及中国医疗监护仪市场容量需求与投资竞争力研究报告2022版
  3. 中国褐煤行业发展趋势前瞻与十四五战略规划分析报告2022-2028年
  4. CryptoAPI与openssl数字签名与验证交互
  5. 2018 Multi-University Training Contest 10 - CSGO
  6. python常见的数据转化函数
  7. js基础练习题 二次封装函数
  8. C++ transform 浅析
  9. java---switch
  10. 神经网络总结(初稿)