Object类
理解:
①位于java.lang包中,无需导包
②Object类是所有类的直接父类或者间接父类
③Object类型可以储存任意类型的对象,用到了多态
④Object类中定义方法,是所有类都默认具有功能(访问权限允许的情况)
常用方法:
一、getClass()方法
方法被final修饰,不允许子类覆盖
作用:获取引用中实际存储的对象类型
实际开发中会根据==来判断两个引用中存储的实际对象类型是否一致
System.out.println(u.getClass()==u1.getClass());
注意:借助此应用的结果用于if结构判断
二、int hashCode()方法
没有被final修饰,允许子类覆盖
作用:返回对象的哈希码值(int类型整数)
Object中提供的hashCode方法中哈希码值的来源:将对象在内存中十六进制的内存地址转为十进制的整数
注意:由于不同对象在堆空间中内存地址不同
所以不同对象具有不同的哈希码值
三、String toString()方法
没有被final修饰,允许子类覆盖
作用:返回该对象的字符串表现形式
子类通常将toString()方法覆盖,方便展示对象的信息
覆盖原则:将子类的所有属性拼接成String结果并进行返回
注意:实际开发中,建议基础类将toString()方法覆盖,方便开发人员展示对象的信息
四、boolean equals(Object obj)方法
没有被final修饰,允许子类覆盖
作用:判断两个对象的内容是否相等,true/false
实际开发时,利用equals方法比较对象内容,需要覆盖equals方法
equals五步:
通过实现以上五部方法,成功重写equals方法
即可调用
判断两个对象的值是否一致,一致则输出true
不一致则输出false。
总结:
①getClass()方法:判断两个引用中实际存储的对象类型是否相等
②hashCode()方法:获取对象的哈希码值,将对象在堆空间中十六进制的内存地址转换成十进制的整形结果,所有对象的不同地址使用后都会有不同的哈希码值
③toString()方法:方便开发人员展示对象的信息
④equals()方法:判断两个对象内容是否相等(需要覆盖)
内容持续更新中......