Java:它是Java中,是和亚当夏娃一样的存在
文章图片
文章图片
文章图片
文章图片
【Java】基础21:顶层父类Object
在东方神话体系中 , 人类是如何来的?
是女娲用泥土捏出来的 。
在西方神话体系中 , 人类是如何来的?
是亚当夏娃的后代 。
今天要学的Object类在Java里面 , 就好比是和亚当夏娃一样的存在 。
只不过神话终归只是神话 , 是虚无缥缈的 , 但是计算机里面 , Object类是真真实实存在的 。
Object类是所有类的根类 , 顶层父类 , 就可以理解成是所有类的祖先 , 也就是说所有的类最终都会继承自它 , 包括数组的父类 , 也是Object类 。
用代码证明:
①getClass():得到类名 。
②getSuperClass():得到父类名 。
③Class是指类 , java.lang这是Java里面的一个包 , 类名是Object 。
所以数组的父类也就是Object. 。
如果一个类没有特别指定父类 , 那么默认继承自Object类 。
既然Object类是顶层父类 , 那么按照继承的规则:子类可以调用父类的方法 。
Object类中的方法 , 所有类都可以使用 。 Object类当中包含的方法有11个 。
今天主要学习其中的2个:
一、Object类的toString方法
①创建Person类 , 没有指定父类 , 那它默认继承Object类 。
②在测试类main方法中 , 创建对应的person对象并初始化 。
③调用toString()方法并打印(注意:Person类中并没有定义toString()方法 , 它调用的是父类Object的方法) 。
④打印结果为一串字符 , 前面一大串是我自己在开发工具里面创建的包名 , 就可以理解成文件夹:
- com是一个总文件夹
- liuxiaoai946是com里一个文件夹
- stud02是liuxiaoai946里的一个文件夹
- commonApi又是stud02里的一个文件夹
下图为Object类的toString()方法:
①getClass().getName():得到类的名字 , 类名是Person 。
②Integer.toHexString(hashCode()):hashCode得到的是一个地址值 , 将这个地址值转化成十六进制 , 也就是说16e8e0a是一串16进制的数字 。
好 , 现在问题来了 , 对于开发者来说 , 地址是没多大的意义的 , 我们需要的是你能以字符串的形式展现出来而不是给我一串地址 。
前面学过String类 , 知道它打印出来就是一串字符串 , 而不是一串地址 , 怎么做到的?
因为它将方法重写了 。
下图为String类的toString()方法
String类的父类是Object类 , 它将父类的toString方法重写了 。
【Java:它是Java中,是和亚当夏娃一样的存在】所以 , 当我们新建一个类的时候 , 一般都会将toString()方法重写 , 因为地址对于开发者来说意义不大 , 我们需要的是字符串 。
推荐阅读
- 『Java』java数据结构系列——什么是数据结构
- 『Java』马云:成功人跟普通人差不多,但这三点我一定要分享给所有年轻人
- #Java#java线程到底有多少种状态?
- #智能手表#1、初识java-1
- [华为]有朋友问我“JAVA全栈”、“互联网架构师”和“JAVAEE”到底是什么?
- 「javascript」这边走Javascript了解一下
- 【伽利略】光速刚好是这个数值,它是被设计出来的,还是只是一种巧合?
- 「华为」一篇有趣的Java class
- struts@Java面试之项目面试问题——不看面试会后悔的
- 「Java」六面蚂蚁金服,唬住了面试官要了30K;其实Java面试也没那么难