JavaSE之类关系、内部类、设计模式(面向对象)

一、类关系

继承 使用extends表示,类和类单继承,接口和接口多继承,多个逗号隔开又叫泛化关系

image-20240802184539597

实现 类和接口是多实现关系,多个逗号隔开,通过关键字 implements表示

image-20240802184640373

依赖 一个类中的局部变量 ,保存了另一个类对象

image-20240802184740359

关联 又叫强依赖,一个类中的成员变量,是另一个类对象

image-20240802184831190

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

比如 A要保存B的引用,这个引用一般是别人给的,或传递的,反正不是自己创建的

比如工厂模式,或者Spring中的IOC DI注入

image-20240802190619343

组合 整体和局部不可分离,局部不具备独立生命周期

比如 A要保存B的引用,这个引用一般是自己创建的

那么A销毁后,B也会随之销毁,成员垃圾数据

image-20240802190711430

二、内部类

2.1 概述

就是类中创建的类

当一个事物的内部,还有一个部分需要一个完整的结构进行描述

而这个内部的完整结构只对当前类提供服务,就可以写为内部类

如果学生类需要保存老师,而老师就是一个完整的结构

一般我们会存储老师的对象就行

但是如果老师类,是公共的,就意味着在任何地方都可以使用老师类

而我们只想让这个老师类给学生类使用,不想给别的类使用,就把老师类弄成内部类

image-20240802191749522

2.2 分类

成员内部类 等同看做成员变量

静态内部类

局部内部类

匿名内部类

2.3 成员内部类

内部类可以访问外部类私有化数据

成员内部类

可以看做是成员变量,没有使用static修饰的内部类

成员内部类中不能有静态声明

成员内部类中可以直接访问外部类的所有数据

image-20240802192642934

image-20240802192729232

2.4 静态内部类

静态内部类 可以等同看做静态变量

静态内部类中,可以直接调用外部类静态属性

不能直接访问外部类的成员属性需要创建外部类对象才能使用

静态内部类中可以有任何声明

image-20240802192951956

image-20240802192959734

2.5 局部内部类

局部内部类可以看做局部变量()

局部内部类,不能使用static修饰

局部内部类中访问外部方法的局部变量时,该变量需要加final修饰,但是1.8中final可以省略

局部内部类不能有静态声明

如果多个方法中的局部内部类,类名不一致,则 为 外部类类名$1内部类类名

如果多个方法中的局部内部类类名一致了,则 为 外部类类名$1内部类类名,外部类类名$2内部

类类名…以此类推

局部内部类可以直接访问外部类的静态属性

如果是静态方法中的局部内部类,则无法直接访问外部类成员属性

如果是成员方法中的局部内部类,则可以直接访问外部类的成员属性

image-20240802201428948

image-20240802201439030

2.6 匿名内部类

image-20240802201457964

image-20240802201503874

三、设计模式

3.1 概述

设计模式:代表了最佳的实践方式,通常被有经验的面向对象的软件开发人员采用

是众多有经验的开发人员,经过很长时间的使用和错误总结出来的,用来解决一系列特定问题

它不是语法规范,而且一套用来提高代码的复用性、可读性、可维护性、鲁棒性及安全性的解决

方案

image-20240802201941712

3.2 单例模式

单例模式: 多次获取对象,但是只创建一个实例化对象,获取到的是同一个对象

1 构造方法私有化,让外部无法创建对象

2 对外提供一个用于获取对象的静态方法

3 提供一个静态变量,保存创建的对象

根据对象的创建时机不同,分成两种

1 懒汉模式:当用到的时候,再创建这个对象

2 饿汉模式:类加载的时候,就创建这个对象

3.2.1 饿汉模式

image-20240802202103087

3.2.2 饿汉模式

根据对象的创建时机不同,分成两种

1 懒汉模式:当用到的时候,再创建这个对象

2 饿汉模式:类加载的时候,就创建这个对象

3.2.1 饿汉模式

[外链图片转存中…(img-8vVimQXP-1722601354445)]

3.2.2 饿汉模式

image-20240802202120793

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值