Day14 Object、类关系

本文探讨了Java中的核心类Object,重点讲解equals方法的内存地址比较与重写,toString的作用与定制,finalize的垃圾回收机制,以及hashCode的原理。同时介绍了类间关系,如继承、实现与依赖聚合的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 面向对象

1.1 Object

1.1.1 概述

Object: 是java 提供的根类,所有的类都要直接或者间接的继承Object

Object中的方法,是所有类都有的

Object xxx = new xxx() 是可以发生多态的 

因为多态的原因,如果一个方法需要传递数据,并且无法确定数据类型的时候,就可以使用Object

 今天的内容:

1. 谁的方法

2. 什么方法(成员还是静态)

3. 方法的功能是什么,入参和出参是什么

4. 什么时候需要重写(满足不了需求的时候)

1.1.2 Equals

 == 比较基本类型的时候 比较的是值的大小,但是比较引用类型的时候 比较的是内存地址
 
而当我们需要比较两个对象的时候,往往是根据对象的属性的值进行比较,而不比较他们是不是同一

个对象,因为这样没有任何价值
 
 此时 == 就不能解决我们的问题
  
  于是 Object 中提供了一个equals方法,专门用于比较两个对象是否相同,是否为同一个对象
        public boolean equals(Object obj){
                return this == obj;
          }
  
  关于Object中的equals方法

          设计目的 : 比较两个对象是否相等

          默认比较内存地址,需要根据需求进行重写

 

 1.1.3 toString

  toString : 设计目的 , 返回该对象的字符串表示形式
  
  输出一个引用类型的时候,默认输出内存地址
  
  因为当我们输出一个引用类型的时候,会自动调用该对象的toString方法,默认的toString方法,只返   

  回内存地址
  
  比如我们需要在打印一个对象的时候,展示出对象中的属性信息,就需要覆写toString方法

 1.1.4 Finalize

JVM四大特性 : 

          1 跨平台

          2 面向对象

          3 多线程

          4 自动垃圾回收机制
  
       finalize 是什么

          1 finalize每个对象都有

          2 不需要程序员手动调用,由系统自动调用

          3 垃圾 : 没有更多引用指向这个对象的时候,该对象被视为垃圾数据(创建了一个对象,谁也找

到它),等待被回收

          4 当一个垃圾被回收之前,会自动调用该对象的finalize方法

              所以 结合finalize的执行时机,适合做一个资源销毁操作

              只要是在对象回收前执行的事,都可以放到 finalize 中

          5 如果我们手动调用了finalize方法,那么只是一个简单的方法调用而已,并不会被回收  

1.1.5 hashCode 

 

1.2 类与类之间的关系 

1 继承  使用extends表示

       类A extends 类B{}

       接口A extends 接口B,接口C{}

       类和类之间是单继承,接口和接口之间是多继承

2 实现 implements

         类A implements 接口B,接口C

         类和接口是多实现

3 依赖

         某个类中的方法的局部变量,是另一个类的对象引用

         这种关系是临时性的,方法执行结束,关系就不存在了

4 关联

      某个类的成员变量是另一个类对象的引用这种关系一般是长期的

5 聚合

     整体和局部可以分离,各自具备独立的生命周期

     比如公司和员工

        假如A需要保存B的引用,这个引用一般是调用处传递过来的,这样的话 调用处和A 都保存B的引

用,此时就算A销毁了,B也不会销毁,因为还有其他引用指向

6 组合

       组合的关系要强于聚合,又叫强聚合

       同样是整体和局部,但是不可分离,局部没有独立的生命周期

       比如A保存B的引用,一般这个引用是A自己创建的,这样的话,A每创建一个对象,都需要创建一个

B的对象,此时A销毁之后,B也就销毁了,因为没有其他指向了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值