abstract类中不可以有private的成员_UML类图还不懂?来看看这版乡村爱情类图,一把学会!
作者:小傅哥
博客:https://bugstack.cn
沉淀、分享、成长,让自己和他人都能有所收获!
一、码场心得
有个词叫内卷严重!
最开始听到这个词是有个小伙伴在我的一篇HashMap源码分析文章下的留言:“哥们,你这叫内卷!”。这篇文章深度解释了扰动函数、负载因子以及相关数学方式的结果验证,有兴趣的可以跳过去阅读。《HashMap核心知识,扰动函数、负载因子、扩容链表拆分,深度学习》
那什么叫内卷呢,乍一看这词还是有点新的。其实内卷化来自单词 involution
,也可以称作“过密化”。这样就好解释了,比如;
- 100个人上卫生间就3个坑,没法公平分配,那就谁今天谁穿裤衩谁先上
- 100个700分以上的,就30%个名额能去清北。3万多600分以上的考生里,很多人可能连211都上不了。
- 道路拥堵,不能让每个人都开车,只能遥遥无期的摇号排队。
这些都可以解释为过密化带来的内卷严重问题,但好在这些都在不断的优化完善。
程序员也有内卷?!
其实大部分时候大家说的程序员内卷,指的是面试造火箭,求职越来越难。
其实从某种角度来说,我个人是不太认可说程序员有内卷的。就整个行业来看,程序员的工作就业情况和薪资待遇都是不错的。有人会觉得面试还得刷题、学源码、看框架、懂架构等等,可这些难道不应该是你做成程序员职业发展道路上,必经的突破吗?
可能每个人都会在某个时期感觉自己一直处于瓶颈期,做着重复的事情、码着CRUD的逻辑、接触不到核心的技术等等,都会猛的瞬间觉得自己快狒狒了。那这样的你似乎只能用内卷这个词让自己内心平衡了,试问自己,你对自己投入过学习成长的时间吗?你有计划破局突破自己的瓶颈吗?如果没有那不叫内卷!
二、会议室
谢飞机,小记
,假期回来上班的一周的 飞机,被组长安排了一次项目成长分享。
小组长:飞机,你分享的项目中,核心模块要给大家讲清楚。这块蛮有技术点的!
谢飞机:嗯嗯,我也在想怎么能让大家听懂。
小组长:最好借助一些工具,把代码逻辑、功能流程,通过图的方式表达出来。
谢飞机:流程图我会画了,但是这里的核心功能类,我还不知道怎么弄。
小组长:咳咳,用UML类图哇,把核心类体现出来。
谢飞机:...,没画过,我内卷了吗?
小组长:不要脸!等我画点资料,教你!
三、乡村爱情类图学习
UML(Unified Modeling Language),是一种面向对象设计的建模工具,建模的核心是模型,模型是现实的简化、真实的抽象。
在 UML 中,所有的描述包括:事务、关系、图这三部分构件组成,如下图为所有构件的关系。
接下来,我们就着重讲解UML中的类图关系,在乡村爱情人物里的体现。
1. 类图模型
UML 类图(Class Diagrams),是使用频率最高的 UML 图之一,类图可以表示出类、接口和它们之间的协作关系。各个接口、类、属性、方法,可以用如下方式表达。
2. 继承关系
代码
public class 谢广坤 {private String 辈分;public void 作妖(){}
}public class 谢永强 extends 谢广坤 {}public class 谢飞机 extends 谢广坤 {}
类图
- 功能:继承关系
- 概念:继承(Generaliztion)又叫泛化,用于表示子类继承父类的所有功能。
- 场景:谢广坤的作妖技能,谢永强和谢飞机继承。谢飞机继承的更好,更能作。
3. 实现关系
代码
public interface 舞术 {void 招式();
}public class 刘能 implements 舞术 {private String 来将姓名;public void 招式() {}
}public class 赵四 implements 舞术 {private String 来将姓名;public void 招式() {}
}
类图
- 功能:实现关系
- 概念:接口、抽象类声明的方法,由类实现(Realiztion)其功能。
- 场景:在赵四和刘能的一场比舞中,赵四花式走位,被刘能找准时机一踢撂倒。
4. 组合关系
代码
public class 结婚证 {private 赵玉田 男方;private 刘英 女方;public void set男方(赵玉田 男方) {this.男方 = 男方;}public void set女方(刘英 女方) {this.女方 = 女方;}
}public class 赵玉田 {private int 年龄;private String 性别;}public class 刘英 {private int 年龄;private int 性别;}
类图
- 功能:组合关系
- 概念:组合(Combination)关系表示类中整体与部分的关系,整体与部分相依相存。
- 场景:赵玉田和刘英的结婚证,缺一不可。
5. 聚合关系
代码
public class 山庄 {private 宋晓峰 晓峰;private 李宝库 宝库;public void 药膳房(李宝库 宝库) {this.宝库 = 宝库;}public void 保安部(宋晓峰 晓峰) {this.晓峰 = 晓峰;}}public class 李宝库 {private String 职业;}public class 宋晓峰 {private String 职业;}
类图
- 功能:聚合关系
- 概念:聚合(Aggregate)关系,也是用于表示对象的整体和部分,但成员对象可以与整体对象分离独立存在。
- 场景:在⛰山庄中药膳方有李宝库、保安部有宋晓峰。但李宝库和宋晓峰都只是其中的一员,都可以离开山庄。
6. 关联关系
代码
public class 豆腐厂 {private 王小蒙 员工;public void 添加员工(王小蒙 小蒙){this.员工 = 小蒙;}
}public class 王小蒙 {private 豆腐厂 企业;public void 添加企业(豆腐厂 豆腐厂){this.企业 = 豆腐厂;}}
类图
- 功能:关联关系
- 概念:关联(Association)关系,是类之间常用的一种关系,表示一类对象与另一类对象的联系。组合、聚合也属于这种关系,但关联关系更弱。
- 场景:豆腐厂里有王小蒙,但豆腐厂里又不只是有王小蒙,还有王老七。即使小蒙不在,豆腐厂也可以正常运行。而王小蒙还有自己的其他企业,所以这属于一种关联关系。
7. 依赖关系
代码
public class 招商引资 {public void 招商(王大拿 大拿){}
}public class 王大拿 {private String 资源;
}
类图
- 功能:依赖关系
- 概念:依赖(Dependency)关系当表示一个事务需要使用另外一个事务时,可以使用依赖关系。
- 场景:招商引资需要王大拿,但并只是就只有这一个大拿。王大拿不来,可能还有李大拿、张大拿。
四、赵家班全景类图
综上,这6种关系里,组合、聚合、关联代码结构类似,可以从依赖的强弱进行理解。强弱关系依次是:继承 > 实现 > 组合 > 聚合 > 关联 > 依赖。
为了更清楚的表达出 UML 类关系,我们把这些画到一整张图中,如下;
五、总结
- 有人说,如果我们和外星人 非常友善的通信了。那么两个星球之间会进行一些交流,比如问,你好,地球人 人你多高呀?地球说1.75米。外星人晕了,米是什么单位?这样就只能选取两个星球通用的标准来定义,比如:1米是光在真空中1/299792458秒内经过的距离。
- 其实程序开发也是这样的,为了可以让大家减少对新知识内容的理解的沟通成本,需要定义一些沟通标准,比如UML类图。所以我们需要学习这些标准的工具化语言,来减少沟通成本,提升工作效率。
- UML类图也是最常用的图稿,同时也非常易于掌握。为了可以把自己的知识面铺设的更加完善,技术栈掌握的更加夯实,也为了突破每一个阶段的瓶颈。那就需要不断学习,不断的积累,找机会破局。
六、系列推荐
- 握草,你竟然在代码里下毒!
- 一次代码评审,差点过不了试用期!
- 程序员为什么热衷于造轮子,升职加薪吗?
- 全网最火10万下载量,《重学Java设计模式》(22个真实开发场景)
- 面经手册(上最快的车,拿最贵的offer)
abstract类中不可以有private的成员_UML类图还不懂?来看看这版乡村爱情类图,一把学会!相关推荐
- abstract类中不可以有private的成员_别再说你不懂java面向对象了,阿里P7大佬一次性给你讲的明明白白
前言 面向对象在百度百科中是这样解释的:"面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物".说的好像很流弊的样子,看看就行. 包的认识 1.1:包 ...
- abstract类中不可以有private的成员_C++类成员的三种访问权限:public/protected/private...
1.访问限定符 C++ 通过 public.protected.private 三个关键字来控制成员变量和成员函数的访问权限(也称为可见性),分别表示:公有的.受保护的.私有的. class 2.访问 ...
- abstract类中不可以有private的成员_C++ 类:声明成员函数与实现
接上文... 16.3类的成员 2.成员函数 1.构造函数 ... 2.拷贝构造函数 有了类的构造函数我们就可以创建类的实例了,下图中分别使用不同的构造函数一共创建了4个动物的对象,现在程序中就有4个 ...
- abstract类中不可以有private的成员_我要告诉你:java接口中可以定义private私有方法...
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...
- abstract类中不可以有private的成员_C++中public、protected、private的区别
1.访问范围 private:只能由该类的成员函数.友元的成员函数访问,不能被其他类的成员函数访问,即使是该类的对象也不能直接访问 protected:可以被该类中的成员函数访问.子类中的成员函数访问 ...
- python类中包含一个特殊的变量、它可以访问类的成员_Python类中包含一个特殊的变量( ),它表示当前对象自身,可以访问类的成员....
包含票务系统的业务管理主要内容包括()A:运营监督B:规则管理C:信息管理D:财务管理E:模式管理 特殊表嘌呤核苷酸补救合成途径的主要器官是().A:脑组织B:小肠C:胸腺D:肝脏E:肾脏 示当身嘌呤 ...
- C++中如何初始化类中const或引用类型的数据成员?
在C++中,如果没有在构造函数初始值列表中显示地初始化成员,则该成员将在构造函数体之前执行默认初始化.之后,再进入构造函数体{}中,随着构造函数体一开始执行,初始化地工作实际上就完成了. 下面两个构造 ...
- C++在类中能定义本身类型的成员
链接:https://www.zhihu.com/question/341035289/answer/1047747826 来源:知乎 ----故事1---- class MyClass {publi ...
- C++类中有如vector, map等容器类成员时如何编写构造函数
假如一个类的成员函数如下: class A{int a;vector<int> v;map<int, int> m; }; 编写构造函数有三种方式: ①:默认构造函数 ②:容器 ...
最新文章
- 转载JQuery 获取设置值,添加元素详解
- 推荐一款神级 API 接口管理神器
- 【牛客网】牛客练习赛19 F 算式子【数学--递推 、前缀、数字】
- 可以查到的资料和可以淘到的原件 DIY 四轴
- 如何将低压精密运算放大器的性能扩展到高压高侧电流检测应用(高电流电阻采集电压电路图及误差分析)
- 谷歌相册_Google相册中的新存档功能是什么?
- 信息学奥赛一本通(1208:2的幂次方表示)
- ajax传json格式数据
- 商业医疗险住院报销需要什么材料?
- android刷新蓝牙缓存,如何使用GattServer以编程方式清除蓝牙缓存
- 大学生职业生涯规划包word,ppt模板以及必备素材
- ER studio 安装细节
- 四元数与欧拉角(数学推导)
- 从sockaddr_ipx到AF_IPX协议分析(一)
- 功放的音箱线连接方式
- hadoop一些面试可能问的东西
- redis value最大值_Redis value的5种类型及常见操作
- 酷炫css3_使用CSS3的6个酷炫图像字幕
- CSS样式属性margin,padding详解
- CSS实现表格细边框的三种方式
热门文章
- 赛马网基本算法之--约德尔测试
- 浅谈coverage
- Eclipse Java RMI 入门
- ubuntu一键安装msf
- MySQL 多表联合查询有何讲究?
- 人工智能学习07--pytorch10--目标检测:RCNN、Fast RCNN、Faster RCNN
- Tell me, I'll forget. Show me, I may remember. But involve me and I'll understand.”Chinese Proverb
- java 超链接_java 将字符串中的网络连接加上超链接
- 通过局域网访问tomcat服务器
- 『工程项目实践』条形码的检测与识别