Java核心类——Object类

2021/4/18 20:55:25

本文主要是介绍Java核心类——Object类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Object类

概述

概念

  Object是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括数组)都实现这个类的方法.
  随意定义一个类型,不手动显式定义其父类,那么这个类的父类就是Object类.
  Object类: 是所有类的父类 ,Object类没有父类 是所有类的爸爸 

特点

  1. Object类型的引用 可以指向任何类的对象 
  2. Object类中定义的所有的非私有的属性和方法 在所有的类中都拥有使用权
  3. 当定义一个类的时候,没有继承任何的类,默认这个类 继承Object
  4、Object类如果不是一个类的直接父类,必定是这个类的间接父类

构造方法

语法

  Object()

用途

  1.创建Object类的对象的方法.
  2.子类访问,所有子类都会直接或者间接的访问到这个顶层父类的构造方法.

常用方法

toString()

作用

  返回对象的字符串形式

方法实现

输出
  getClass().getName() + '@' + Integer.toHexString(hashCode())
过程
  (1)getClass().getName() 表示类的完全限定名.
  (2)hashCode() 表示根据内存地址通过哈希算法生成的哈希码值.
  (3)Integer.toHexString() 表示无符号十六进制的字符串表示形式.
过程详解
  输出内容:getClass().getName() + '@'  + Integer.toHexString(hashCode())     
						                      
  (1)getClass.getName():  作用:获取对象的全类名
      1)getClass()
        作用:返回此 Object 的运行时类。							
        获取的是类的字节码对象 ,就是 Class 类的对象,输出结果最前面会带有 class.
        对象中存储了 关于 xx类中所有的属性名 、 类名、 包名 、 构造方法名、 构造方法  .....
        例:class com.study.day0416.Student
![](https://www.www.zyiz.net/i/l/?n=20&i=blog/1217155/202104/1217155-20210418202750442-579282359.png)
  						
      2)getName()
        必须与getClass()连用,不可单独使用
        getClass.getName():  作用:获取对象的全类名、带包结构的类名. 即包名  + 类名组成的字符串(会消除最前方的class)
        例: com.study.day0416.Student
  ![](https://www.www.zyiz.net/i/l/?n=20&i=blog/1217155/202104/1217155-20210418202842197-471873652.png)
![](https://www.www.zyiz.net/i/l/?n=20&i=blog/1217155/202104/1217155-20210418202856654-274750779.png)
![](https://www.www.zyiz.net/i/l/?n=20&i=blog/1217155/202104/1217155-20210418202906826-158010243.png)

  (2)hashCode()
    作用:返回该对象的哈希码值。
    哈希值: 将对象的地址进行哈希算法的计算得到的一个整数值 这个值叫做哈希值 
    hashCode方法的实现不是Java语言实现的 是一个本地方法
![](https://www.www.zyiz.net/i/l/?n=20&i=blog/1217155/202104/1217155-20210418202926353-1977716534.png)
							
  (3)Integer.toHexString(int a)
    作用:将一个10进制的整数 转换为16进制的数
![](https://www.www.zyiz.net/i/l/?n=20&i=blog/1217155/202104/1217155-20210418202937770-757616291.png)

特点

  1、在实际开发中一般遵从重写原则
  2、直接打印对象的引用,就是打印的是对象调用toString方法后返回的字符串的值。
![](https://www.www.zyiz.net/i/l/?n=20&i=blog/1217155/202104/1217155-20210418203026122-1598296783.png)

equals()

作用

  判断两个对象是否相等

特点

  1、在实际开发中重写原则
  2、比较两个对象的所有属性/部分属性 是否全部相同
    步骤:
      (1)判断两个引用是否相同
      (2)判断obj是否为空 
      (3)判断两个引用的类型是否相同 
      (4)向下转型
      (5)判断属性是否相同

== 和 equals 方法的区别

    简单数据类型
      1. == 可以判断两个简单数据类型的值是否相等
      2. equals方法不能用于简单数据类型
    引用数据类型
      1. == 可以判断两个引用中的地址是否相同
      2. equals方法在重写之前和 == 一样,重写之后判断的是两个对象的内容属性是否相同

finalize()

作用

      当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

一般语法:

      Object的子类可重写此方法


这篇关于Java核心类——Object类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程