Java常用类01:Object类
2021/9/8 20:08:38
本文主要是介绍Java常用类01:Object类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
getClass()方法
返回对象存储的实际类型,可用于判断两个对象实际存储的类型是否一致
public class Hello { public static void main(String[] args) { Test test = new Test(); test.test(); } } class Test extends Hello{ public void test(){ Hello a = new Test(); Test b = new Test(); System.out.println(a.getClass() == b.getClass()); //true,说明虽然a的声明类型是父类,其实际类型仍为子类 System.out.println(a.getClass()); //class Test } }
hashCode()方法
返回对象的哈希码值,根据对象的地址或字符串或数字使用hash算法计算出来的int类型数值,相同对象返回相同数值
public class Hello { public static void main(String[] args) { Hello a = new Hello(); Hello b = a; System.out.println(a.hashCode()); System.out.println(b.hashCode()); //相同对象哈希值相同 } }
toString()方法
返回对象的字符串表示,一般会重写该方法来自定义打印的内容
public class Hello { public static void main(String[] args) { System.out.println(new Hello().toString()); } @Override public String toString() { //快捷键ctrl + O return "重写toString()方法"; } }
equals()方法
判断两个对象是否相等,可进行重写来比较两个对象的属性是否相同
重写步骤
- 比较两个引用是否指向同一个对象
- 判断对象是否为null
- 判断两个引用指向的实际对象类型是否一致
- 强制类型转换
- 依次比较各个属性值是否相同
public class Hello { public static void main(String[] args) { Test a = new Test(1, 2); Test b = new Test(1, 2); //在重写了equals()方法后,如果两个对象的属性值相同,也能算是同一对象了 System.out.println(a.equals(b)); } } class Test{ int a; int b; public Test(){} public Test(int a, int b) { this.a = a; this.b = b; } @Override public boolean equals(Object obj) { if (this == obj){ //比较两个引用是否指向同一个对象 return true; } else if (obj == null){ //判断对象是否为null return false; } else if (obj instanceof Test){ //判断两个引用指向的实际对象类型是否一致 Test n = (Test) obj; //强制类型转换,因为在instanceof判断中,子类也是父类的对象类型,所以需要强制转换确保类型为Hello if (this.a == n.a && this.b == n.b){ //依次比较各个属性值是否相同 return true; } } return false; } }
finalize()方法
JVM自动调用此方法,进行垃圾对象回收
这篇关于Java常用类01:Object类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-02Java管理系统项目实战入门教程
- 2024-11-02Java监控系统项目实战教程
- 2024-11-02Java就业项目项目实战:从入门到初级工程师的必备技能
- 2024-11-02Java全端项目实战入门教程
- 2024-11-02Java全栈项目实战:从入门到初级应用
- 2024-11-02Java日志系统项目实战:初学者完全指南
- 2024-11-02Java微服务系统项目实战入门教程
- 2024-11-02Java微服务项目实战:新手入门指南
- 2024-11-02Java项目实战:新手入门教程
- 2024-11-02Java小程序项目实战:从入门到简单应用