当前位置: 首页 > article >正文

30天学习Java第六天——Object类

Object类

java.lang.Object时所有类的超类。Java中所有类都实现了这个类中的方法。

toString方法

将Java对象转换成字符串的表示形式。

public String toString() {
       return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

默认实现是:完整类名+ @ + 十六进制的数字
如果你不满意toString的实现不满意,可以对其进行重写,使其更具有可读性,符合自己的需求。
对于equals方法也是一样,如果业务需要,而equals的比较方法不满足,也可以对其重写,以满足需求。

  • 当print()输出的是一个引用时,若该引用不是null时,默认调用该引用的toString方法输出

finalize方法

  • 当一个对象的引用为null了,这个对象就要被GC回收释放了(GC也会自动调用该方法),在对象即将被释放之前可以使用该方法执行一些“临终操作”
  • 这是Java给程序员提供的一个时机
  • finalize()的默认实现为空,若要使用必须重写
  • Java9之后,该方法已经被废弃了

clone方法

  • 开发中要保护原对象的数据结构。通常复制一份,生成一个新对象,对新对象进行操作
  • Object中的clone方法是受保护的protected,因此一般需要对clone方法进行重写
  • 凡是参加clone的对象,必须实现标志接口Cloneable,否则会报错,无法克隆错误

浅克隆与深克隆

  • 对浅克隆出来的对象进行修改操作,不会影响原来的对象
  • 浅克隆会导致下面这种情况出现,浅克隆一个User对象,但是User对象中有个Address类型的成员变量,更改浅克隆对象的add变量值,会修改原先对象的add值,这不是我们想看到的,因此就需要克隆的时候,把Address也克隆一个,这种克隆称为深克隆

在这里插入图片描述

  • 如何深克隆
    在User的重写clone方法中,让User关联的Address对象也克隆一份

内部类

在类中定义的类称为内部类,分为静态内部类、实例内部类、局部内部类、匿名内部类。
匿名内部类可以不显示定义一个类,直接在new对象的时候进行实现即可,适用于只使用一次的类


注:本文章源于学习动力节点老杜的java教程视频后的笔记整理,方便自己复习的同时,也希望能给csdn的朋友们提供一点帮助。

原文地址:https://blog.csdn.net/m0_55329111/article/details/146268834
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/585250.html

相关文章:

  • C++ const 使用
  • Android源码学习之Overlay
  • 实现手机手势签字功能
  • 在线教育网站项目第四步 :学习Vue3 + Nuxt3+springcloud,服务器为ubuntu24.04
  • 日志Python安全之SSTI——Flask/Jinja2
  • go中实现子模块调用main包中函数的方法
  • 外星人入侵-Python-二
  • 12 DHCP的内容和HTTP的改良
  • 车载以太网测试-11【网络层-ICMP协议】
  • 02-Canvas-fabric.BaseBrush绘图工具
  • 通信协议传输过程中的序列化和反序列化机制
  • 2025-03-14 学习记录--C/C++-PTA 习题2-1 求整数均值
  • AI时代下的心理咨询师新利器:心理咨询小程序
  • 蓝桥杯十天冲刺(C++)-输入输出
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第三讲)
  • 苍穹外卖实战附源码-DAY1
  • 优选算法的匠心之艺:二分查找专题(一)
  • 微前端解决方案之MicroApp
  • 基于YOLO11深度学习的舌苔舌象检测识别与诊断系统【python源码+Pyqt5界面+数据集+训练代码】
  • OpenCV特征提取与深度学习CNN特征提取差异