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

打印 上一主题 下一主题

主题 1022|帖子 1022|积分 3066

Object类

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

将Java对象转换成字符串的体现形式。
  1. public String toString() {
  2.        return getClass().getName() + "@" + Integer.toHexString(hashCode());
  3. }
复制代码
默认实现是:完备类名+ @ + 十六进制的数字
假如你不满意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的朋友们提供一点资助。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

圆咕噜咕噜

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表