| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Object 类详解 -> 正文阅读 |
|
[开发工具]Object 类详解 |
作者:recommend-item-box type_blog clearfix |
我们学习的所有类、我们以后定义的所有类都是 Object 类的子类,也都具备 Object 类的所有特性。因此,我们非常有必要掌握 Object 类的用法。 2.1 Object 类基本特性Object 类是所有 Java 类的根基类,也就意味着所有的 Java 对象都拥有 Object 类的属性和方法。如果在类的声明中未使用 extends 关键字指明其父类,则默认继承 Object 类。 【示例 5-4】Object 类
补:IDEA 部分快捷键IDEA 快捷键和相关操作:
?
2.2 toString 方法Object 类中定义有 public String toString()方法,其返回值是 String 类型。Object 类中 toString 方法的源码为: public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 根据如上源码得知,默认会返回“类名+@+16 进制的 hashcode”。在打印输出或者用字符串连接对象时,会自动调用该对象的 toString()方法。 【示例 5-5】重写 toString()方法
执行结果如图 5-4 所示: ? 图 5-4 示例 5-5 运行效果图 2.3 ==和 equals 方法“==”代表比较双方是否相同。如果是基本类型则表示值相等,如果是引用类型则表示地址相等即是同一个对象。 Object 类中定义有:public boolean equals(Object obj)方法,提供定义“对象内容相等”的逻辑。比如,我们在公安系统中认为 id 相同的人就是同一个人、学籍系统中认为学号相同的人就是同一个人。 Object 的 equals 方法默认就是比较两个对象的 hashcode,是同一个对象的引用时返回 true 否则返回 false。但是,我们可以根据我们自己的要求重写 equals 方法。 【示例 5-6】自定义类重写 equals()方法
JDK 提供的一些类,如 String、Date、包装类等,重写了 Object 的 equals 方法,调用这些类的 equals 方法, x.equals (y) ,当 x 和 y 所引用的对象是同一类对象且属性内容相等时(并不一定是相同对象),返回 true 否则返回 false。 2.4? super 关键字(相当于调用父类的构造方法)super“可以看做”是直接父类对象的引用。可以通过 super 来访问父类中被子类覆盖的方法或属性。 使用 super 调用普通方法,语句没有位置限制,可以在子类中随便调用。 在一个类中,若是构造方法的第一行代码没有显式的调用 super(...)或者 this(...);那么 Java 默认都会调用 super(),含义是调用父类的无参数构造方法。这里的 super()可以省略。 【示例 5-7】super 关键字的使用
执行结果如图 5-5 所示: ? 图 5-5 示例 5-7 运行效果图 2.6 继承树追溯·属性/方法查找顺序:(比如:查找变量 h)
·构造方法调用顺序: 构造方法第一句总是:super(…)来调用父类对应的构造方法。所以,流程就是:先向上追溯到 Object,然后再依次向下执行类的初始化块和构造方法,直到当前子类为止。 注:静态初始化块调用顺序,与构造方法调用顺序一样,不再重复。 【示例 5-8】继承条件下构造方法的执行过程 public class TestSuper02 {
执行结果如图 5-6 所示: ? 图 5-6 示例 5-8 运行效果图 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 14:45:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |