面向对象之设计模式,四种内部类,类关系

ops/2024/10/21 11:45:47/

面向对象

1. 类关系

继承 使用extends表示,类和类单继承,接口和接口多继承,多个逗号隔开

又叫泛化关系

img

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

img

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

img

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

img

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

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

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

img

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

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

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

img

2. 内部类

2.1 概述

类中创建的类

img

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

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

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

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

img

2.2 分类

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

静态内部类

局部内部类

匿名内部类

2.3 成员内部类

img

img

img

2.4 静态内部类

img

img

img

2.5 局部内部类

img

img

img

2.6 匿名内部类

img

img

3. 设计模式

3.1 概述

img

img

3.2 单例模式

img

3.2.1 饿汉模式

img

3.2.2 懒汉模式

.(img-v1PKBsFP-1722600349283)]

3.2.1 饿汉模式

[外链图片转存中…(img-50TjaZOn-1722600349284)]

3.2.2 懒汉模式

img


http://www.ppmy.cn/ops/89048.html

相关文章

EasyAR_稠密空间图

EasyAR稠密空间图 1.稠密空间图 EasyAR稠密空间地图利用RGB相机图像对周围环境进行三维稠密重建,得到稠密的点云地图和网格地图。利用稠密空间地图让虚拟物体更好的融入真实环境之中,用以实现真实物体和虚拟物体正确遮挡、碰撞等AR应用。 2.在Unity中的…

YUV 简介及使用

这里写目录标题 一、YUV 采样格式介绍1. YUV420(NV12、NV21、I420、YV12)2. YUV422(NV16、NV61、I422、YV16、YUVY、VYUY、UYVY)3. YUV444(I444、YV24)二、示例1. NV12转BGR2. BGR转NV12三、参考内容一、YUV 采样格式介绍 1. YUV420(NV12、NV21、I420、YV12) # NV12、…

[Leetcode 875][Medium]-爱吃香蕉的珂珂-二分搜索

目录 一、题目描述 二 、整体思路 三 、代码 一、题目描述 原题地址 二 、整体思路 题目要求在时间h内(含h),求解最小速度k。那么首先要知道速度与吃香蕉所用时间的关系。 假设速度为k,那么吃香蕉所用时间t就等于每堆香蕉piles[i]除以速度k所得的向…

类和对象(上) - c++

1.类的定义 1.1 类定义格式 class 是定义类的关键字 ,后跟类的名字,{}部分为类的主体,(注意:最后类定义结束时不要忘了 ; )。 类体中内容称为类的成员:类中的变量称为成员变量; 类中的函数称为成员函数。在c中,struct也可以定义类(c兼容c语言),同时struct升级成类…

【大模型实战篇】搭建本地的隐私计算知识问答系统“密答”

1. 背景介绍 在之前分享的文章《基于开源大模型的问答系统本地部署实战教程》中,我们介绍了基于ollama实现本地问答系统的部署和使用。本文将基于ollama进一步实现本地垂直领域的问答系统搭建。ollama作为大模型的运行框架,可以提供大模型的使用接口…

Markdown语法学习

Markdown学习 一、基础语法讲解 1. 换行 本行末尾双空格然后回车(在Typora的中直接回车也可以) 2. 换段 本段末尾两次回车 3. 加粗 **加粗** __加粗__效果:加粗 4. 斜体 *加粗* _加粗_效果:斜体 5. 斜体加粗 ***加粗**…

学习记录day18——数据结构 算法

算法的相关概念 程序 数据结构 算法 算法是程序设计的灵魂,结构式程序设计的肉体 算法:计算机解决问题的方法护额步骤 算法的特性 1、确定性:算法中每一条语句都有确定的含义,不能模棱两可 2、有穷性:程序执行一…

python中的字符串方法

python中的字符串 举个例子先 name = 貂蝉开大 #声明了一个字符串 print(name) # 打印了一个字符串 print(name[0:1] #输出貂蝉 print(name[2:3] #输出开大 扩展方法 find() # 查找字符串中某个字符的索引 index_ = name.find("貂") print(index_) # 输出 …