type
status
date
slug
summary
tags
category
icon
password
当你生成各种各样的对象之后,对象之间需要交互
代码
类与类之间的关系
大千世界,万物之间皆有规则和规律,我们的类和对象是对大千世界中的所有事物进行归类,那事物之间存在着相对应的关系.类与类之间也同样如此.在面向对象的世界中,类与类中存在以下关系:
1.依赖关系,狗和主人的关系
2.关联关系,你和你的女盆友的关系就是关联关系
3.组合关系,比聚合还要紧密.比如人的大脑,心脏,各个器官,这些器官组合成一个人.这时,人如果挂了,其他的东西也跟着挂
4.聚合关系,电脑的各部件组成完整的电脑,电脑里有CPU,硬盘,内存等。每个组件有自己的生命周期,电脑挂了,CPU还是好的,还是完整的个体
5.继承关系,类的三大特性之一,子承父业
依赖关系
狗和主人的关系可以理解为是一种依赖关系,如果没有主人,它就是流浪狗了,可能会死。
关联关系
部分代码解释
- 三元条件运算符:
- 三元条件运算符的语法为
X if condition else Y
,意思是:如果condition
为真,返回X
,否则返回Y
。
- 条件判断:
person == self.couple[0]
这个条件判断了person
是否是couple
列表中的第一个元素(即是否是情侣中的第一个人)。
- 选择伴侣:
- 如果
person
是couple
列表中的第一个元素 (self.couple[0]
),那么partner
被赋值为self.couple[1]
(即情侣中的第二个人)。 - 如果
person
不是couple
列表中的第一个元素,那么partner
被赋值为self.couple[0]
(即情侣中的第一个人)。
组合关系
由一堆组件构成一个完整得实体,组件本身独立,但是又不能自己运行,必须跟宿主组合在一起运行
继承关系
简单代码示例
重写父类方法
super使用方法:
多继承
不是所有语言都支持多继承,python,c++支持,java不支持
在python中,有两种类的写法,不同的写法采用的继承顺序不同
在python2中,经典类采用的是深度优先查找法,新式类采用的是广度优先
在python3中,无论经典类还是新式类,都是按照广度优先查找
python2默认都是经典类,只有显式继承了Object才是新式类
python3默认都是新式类,不必显式的继承Object
多继承C3算法
如何查看继承顺序?
封装关系
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式码更容易理解与维护,也加强了代码数据的安全性。封装的优点
1.良好的封装能够减少耦合。
2.类内部的结构可以自由修改,
3.可以对成员变量进行更精确的控制。
4.隐藏信息,实现细节。
【封装原则】
1.将不需要对外提供的内容都隐藏起来;
2.把属性都隐藏,提供公共方法对其访问。
私有属性
私有方法
如果非要从外部访问其实也有办法
实例创建以后无法创建私有属性
多态关系
有时一个对象会有多种表现形式,比如网站页面有个button按钮,这个button的设计可以不一样(单选框、多选框、圆角的点击按钮、直角的点击按钮等),尽管长的不一样,但它们都有一个共同调用方式,就是onClick()方法。我们直要在页面上一点击就会触发这个方法。点完后有的按钮会变成选中状态、有的会提交表单、有的甚至会弹窗。这种多个对象共用同一个接口,又表现的形态不一样的现象,就叫做多态(Polymmorphism)。
代码示例
通过抽象类来实现多态(最常用)
打赏
如果您觉得我的内容对你有所帮助,不要吝啬你的一键三连!如果你有能力的话也可以通过下面请我喝杯咖啡~金额您随意~如果对文章内容有任何疑问,欢迎在留言那里加V联系我~
- 作者:Don Mark
- 链接:null/article/b80c2178-30c0-4d40-a4c7-517140bd6c83
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。