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

devtools/2024/10/18 14:58:59/

面向对象

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/devtools/90483.html

相关文章

Animate软件基本概念:传统补间、补间动画及补间形状

这里主要讲Animate软件中三种基本的补间类型的概念。 FlashASer:AdobeAnimate2021软件零基础入门教程https://zhuanlan.zhihu.com/p/633230084 FlashASer:实用的各种Adobe Animate软件教程https://zhuanlan.zhihu.com/p/675680471 FlashASer&#xff…

【数学建模】——【A题 信用风险识别问题】全面解析

目录 1.题目 2.解答分析 问题1:指标筛选 1.1 问题背景 1.2 数据预处理 1.3 特征选择方法 1.4 多重共线性检测 1.5 实现步骤 问题2:信用评分模型 2.1 问题背景 2.2 数据分割 2.3 处理不平衡数据 2.4 模型选择与理由 问题3:模型对…

集成Apache Kylin与Apache Hadoop:实现大数据高效分析

集成Apache Kylin与Apache Hadoop:实现大数据高效分析 引言 大数据技术的迅猛发展使得企业能够以更低的成本和更高的效率处理和分析海量数据。Apache Hadoop和Apache Kylin是两个广泛使用的大数据处理和分析框架,它们的结合能够提供强大的数据处理能力…

抽象代数精解【8】

文章目录 希尔密码矩阵矩阵基本概念行列式基本概念特殊矩阵关于乘法运算构成群 加解密原理密钥加密函数解密函数 Z 26 上的运算( Z 256 与此类似) Z_{26}上的运算(Z_{256}与此类似) Z26​上的运算(Z256​与此类似&…

如何实现pxe安装部署

此实验环境:rhel7主机 一、kickstart自动化安装脚本 1、安装可视化图形 [rootlocalhost ~]# yum group install "Server with GUI" 2、关闭vmware dhcp功能(编辑-虚拟网络编辑器) 3、httpd 1、安装httpd服务 [rootlocalhost …

HarmonyOS应用开发知识地图

HarmonyOS 应用开发旅程 HarmonyOS 应用开发旅程 PS:Xmind原文件可以直接跳转官方具体文档地址,如需要原文件请联系:DYZZ198 01.准备与学习 学习 HarmonyOS 的基本概念和架构,搭建好所需的开发工具和环境,了解开发规范和最佳实践 了解 H…

redolog和binlog的两阶段提交和区别

redolog和binlog区别 redo log 是 InnoDB 引擎特有的;binlog 是 MySQL 的 Server 层实现的,所有引擎都可以使用。redo log 是物理日志,记录的是“在某个数据页上做了什么修改”;binlog 是逻辑日志,记录的是这个语句的…

MySql Linux 安装

下载 下载后的文件为:mysql-8.4.2-linux-glibc2.28-x86_64.tar.xz 创建用户和用户组 $> groupadd mysql $> useradd -r -g mysql -s /bin/false mysql由于用户仅用于所有权目的,而不是登录目的,因此useradd命令使用 -r和-s /bin/false…