java第十四课

本节课所学内容
Object 类基础概念
Object 是 Java 中所有类的顶层父类,所有自定义类、系统自带类都会默认直接或间接继承 Object,任意对象都可以调用 Object 中定义的方法。我们无需手动书写 extends Object,编译器会自动补充。
toString () 方法
Object 原生 toString () 默认返回:对象地址字符串(对象所属类名 +@+ 十六进制地址)。该方法设计初衷是用来打印对象描述信息,因此日常开发中,我们一般会重写 toString (),把对象的成员变量信息输出,方便查看对象内容、调试代码。如果不重写,直接打印对象只会输出无意义的地址。
equals () 方法
Object 原生 equals () 底层使用做比较,对于引用类型,比较的是两个对象的内存地址,只有两个引用指向同一个对象时结果才为 true。
字符串、包装类等官方类都已经提前重写 equals (),用来比较对象内部内容是否相等;
自定义类想要对比对象属性是否一致,就必须手动重写 equals (),按照成员变量的值判断相等。
补充区分:基本类型用比较数值;引用类型比地址,equals () 默认比地址,重写后比内容。
拓展:== 与 equals 核心区分
:运算符,既可以比较基本类型数值,也可以比较引用类型地址;
equals:Object 中的成员方法,仅适用于引用类型,原生比地址,重写后自定义比较规则。
学习中遇到的问题
一开始不理解为什么要重写 toString,觉得地址也能查看对象,在多次调试查看对象信息繁琐后,才明白重写 toString 对代码调试的作用;
极易混淆
和 equals,做练习题时,经常直接用 == 判断两个自定义对象内容是否相等,忽略地址与内容的区别;
初次手写 equals 重写代码时,忘记做非空判断、类型判断,容易出现空指针异常与类型转换错误;
不清楚系统类和自定义类的区别,误以为所有类的 equals 天生就可以对比内容。

posted @ 2026-08-04 22:18  梁煜昊  阅读(12)  评论(0)    收藏  举报