网站logo怎么修改,阿里云服务器免费一个月,wordpress本地 域名,电子商务的网站建设文章目录 一、封装二、继承三、多态四、聚合/组合五、接口/实现六、抽象 一、封装
封装 Encapsulation
封装是隐藏对象实现细节的过程内部状态通常不能被其他对象访问对象的数据只能通过接口去访问封装使得对象可以被看成一个“黑盒子”它保护对象的内部状态不被其他对象破坏… 文章目录 一、封装二、继承三、多态四、聚合/组合五、接口/实现六、抽象 一、封装
封装 Encapsulation
封装是隐藏对象实现细节的过程内部状态通常不能被其他对象访问对象的数据只能通过接口去访问封装使得对象可以被看成一个“黑盒子”它保护对象的内部状态不被其他对象破坏一个对象实现方法的改变不影响其他相关对象对象间通过“接口”进行通信
封装内容
内部的、不想让其他人随意了解的信息可以封装类的属性如“人” 这个类封装个人的工资、资产、年龄等信息可以封装类的方法如 “人”如何赚钱如何消磨时间
封装目的
保护隐私保护数据安全隔离复杂度 内部实现细节不对外公开。如“空调”封装了制冷的过程对人提供了一个制冷的按钮
封装方式Public、Private、Protected和Package
封装原则对象应该只显示与其交互所需的接口。与对象的使用无关的细节应该对其他对象隐藏起来。
封装建议设置属性的 getter 和 setter 方法实现对数据的隐藏因为其他对象不应该直接操作另一个对象中的数据。
class Student:def __init__(self):self._name Nonepropertydef name(self):return self._namename.setterdef name(self, name):self._name names Student()
s.name 张三 # 调用 setter
print(s.name) # 调用 getter输出 张三二、继承
继承 Inheritance
一个类获取另一个类的状态和行为并添加额外的状态和行为
示例喷气式飞机类继承飞机类
class Airplane:def __init__(self):self.speed Nonedef get_speed(self):return self.speeddef set_speed(self, speed):self.speed speedclass Jet(Airplane):def __init__(self, multiplier2):super().__init__()self.multiplier multiplier # Super()和Super关键字用于引用超类# 不需要定义get_speed()方法它已继承过来def set_speed(self, speed): # set_speed()方法覆盖了父类Airplane中的行为return super().set_speed(speed * self.multiplier)def accelerate(self): # 子类可以定义新的行为super().set_speed(super().get_speed() * 2)j Jet()
j.set_speed(1000)
print(j.get_speed()) # 输出 2000
j.accelerate()
print(j.get_speed()) # 输出 4000三、多态
多态 Polymorphism
当一个类从另一个类继承而来多态使得子类可以代替父类消息发送方不需要知道消息接收方属于那个子类同一类族的接收者可以按自己的方式处理信息 同一类族的接受者可以按自己的方式处理同一个消息可以有不同的对象以不同的方式处理相同的数据
多态的核心思想/设计模式的基础
使用指向父类的指针或者引用能够调用子类的对象示例用shape分别引用Circle和Rectangle子类的对象
from abc import ABC, abstractmethodclass Shape(ABC):def __init__(self):self.area Noneabstractmethoddef get_area(self):passclass Circle(Shape):def __init__(self, r):self.radius rdef get_area(self):return 3.14 * self.radius**2class Rectangle(Shape):def __init__(self, l, w):self.length lself.width wdef get_area(self):return self.length * self.widthcircle Circle(5)
rectangle Rectangle(4, 5)
lst []
lst.append(circle)
lst.append(rectangle)
while len(lst) ! 0:shape: Shape lst.pop()print(f面积{shape.get_area()}) # 不必关心它是具体哪种形状### 输出结果
面积20
面积78.5四、聚合/组合
聚合/组合 Aggregation/Composition 聚合/组合都是描述整体与部分的关系 聚合描述了一种“有”关系。一个对象是另一个对象的一部分或者一个对象包含一组其他对象。 聚合关系是可传递的如果A包含B B包含C那么A包含C。 聚合关系是不对称的如果A包含B那么B不包含A 组合是聚合关系的一个变种是一种强依赖关系表示部分和整体的生命周期是一致的即部分不能脱离整体而单独存在。部分对象只能存在于整体对象之中整体对象控制部分对象的生命周期。 有些时候聚合与组合的关系不是很明确
五、接口/实现
接口/实现 Interface /Implementation 软件系统的内部是由大量的互相关联的类构成的。当对其中某一个类的局部进行修改的时候不能影响其它的类 接口描述一个类的用户如何与这个类交互 实现完成接口所定义的功能、任务。 对实现的更改不应该要求对用户代码进行更改。用户和实现都必须符合接口规范。 示例TV是顾客、用户插座是接口发电厂是实现 六、抽象
抽象 Abstraction
抽象表示一个对象与其他所有对象相区别的基本特征因此提供了同观察者角度有关的清晰定义的概念界限。抽象是专注于最重要的方面而忽略次要细节的过程。使得我们可以通过专注于实体区别于其他实体的关键特征来有效管理降低复杂性抽象就是过滤掉对象的一部分特性和操作直到只剩下你所需要的属性和操作
抽象是一种思维方式、一种思维能力
抽象是面向对象领域发现类的主要方法客观世界的事物由各种各样的实体对象构成每个对象都有各自的内部状态和运动状态规律根据对象的属性和运动规律的相似性可以将对象分类 复杂对象由相对简单的对象组成不同对象的组合及其之间的相互作用和联系构成了系统对象间的相互作用通过消息传递对象根据所接收到的消息做出自身的反应 您正在阅读的是《面向对象分析与设计Python版》专栏关注不迷路~ 文章转载自: http://www.morning.sfgtp.cn.gov.cn.sfgtp.cn http://www.morning.fncgw.cn.gov.cn.fncgw.cn http://www.morning.gfznl.cn.gov.cn.gfznl.cn http://www.morning.ymtbr.cn.gov.cn.ymtbr.cn http://www.morning.rjnky.cn.gov.cn.rjnky.cn http://www.morning.nxcgp.cn.gov.cn.nxcgp.cn http://www.morning.yxwcj.cn.gov.cn.yxwcj.cn http://www.morning.mhsmj.cn.gov.cn.mhsmj.cn http://www.morning.fyxtn.cn.gov.cn.fyxtn.cn http://www.morning.kzrbd.cn.gov.cn.kzrbd.cn http://www.morning.btjyp.cn.gov.cn.btjyp.cn http://www.morning.dmzfz.cn.gov.cn.dmzfz.cn http://www.morning.sgpny.cn.gov.cn.sgpny.cn http://www.morning.gwsfq.cn.gov.cn.gwsfq.cn http://www.morning.gllgf.cn.gov.cn.gllgf.cn http://www.morning.pzcjq.cn.gov.cn.pzcjq.cn http://www.morning.gnghp.cn.gov.cn.gnghp.cn http://www.morning.hyfrd.cn.gov.cn.hyfrd.cn http://www.morning.twhgn.cn.gov.cn.twhgn.cn http://www.morning.zyytn.cn.gov.cn.zyytn.cn http://www.morning.wpxfk.cn.gov.cn.wpxfk.cn http://www.morning.dqpnd.cn.gov.cn.dqpnd.cn http://www.morning.hclqy.cn.gov.cn.hclqy.cn http://www.morning.lsfrc.cn.gov.cn.lsfrc.cn http://www.morning.bqmsm.cn.gov.cn.bqmsm.cn http://www.morning.yjtnc.cn.gov.cn.yjtnc.cn http://www.morning.pxdgy.cn.gov.cn.pxdgy.cn http://www.morning.kllzy.com.gov.cn.kllzy.com http://www.morning.wpxfk.cn.gov.cn.wpxfk.cn http://www.morning.gxcit.com.gov.cn.gxcit.com http://www.morning.gcthj.cn.gov.cn.gcthj.cn http://www.morning.spdyl.cn.gov.cn.spdyl.cn http://www.morning.nkqrq.cn.gov.cn.nkqrq.cn http://www.morning.zhiheliuxue.com.gov.cn.zhiheliuxue.com http://www.morning.bwygy.cn.gov.cn.bwygy.cn http://www.morning.mldrd.cn.gov.cn.mldrd.cn http://www.morning.cdlewan.com.gov.cn.cdlewan.com http://www.morning.rqpgk.cn.gov.cn.rqpgk.cn http://www.morning.wjtwn.cn.gov.cn.wjtwn.cn http://www.morning.ghryk.cn.gov.cn.ghryk.cn http://www.morning.jgttx.cn.gov.cn.jgttx.cn http://www.morning.nqlnd.cn.gov.cn.nqlnd.cn http://www.morning.kzxlc.cn.gov.cn.kzxlc.cn http://www.morning.ctpfq.cn.gov.cn.ctpfq.cn http://www.morning.wfbs.cn.gov.cn.wfbs.cn http://www.morning.jjhng.cn.gov.cn.jjhng.cn http://www.morning.fgkrh.cn.gov.cn.fgkrh.cn http://www.morning.errnull.com.gov.cn.errnull.com http://www.morning.dppfh.cn.gov.cn.dppfh.cn http://www.morning.htpjl.cn.gov.cn.htpjl.cn http://www.morning.rqqkc.cn.gov.cn.rqqkc.cn http://www.morning.dppfh.cn.gov.cn.dppfh.cn http://www.morning.zglrl.cn.gov.cn.zglrl.cn http://www.morning.hqrr.cn.gov.cn.hqrr.cn http://www.morning.tmfhx.cn.gov.cn.tmfhx.cn http://www.morning.lgkbn.cn.gov.cn.lgkbn.cn http://www.morning.pdkht.cn.gov.cn.pdkht.cn http://www.morning.jzlfq.cn.gov.cn.jzlfq.cn http://www.morning.trqzk.cn.gov.cn.trqzk.cn http://www.morning.dkfrd.cn.gov.cn.dkfrd.cn http://www.morning.hqgxz.cn.gov.cn.hqgxz.cn http://www.morning.ljcf.cn.gov.cn.ljcf.cn http://www.morning.krwzy.cn.gov.cn.krwzy.cn http://www.morning.rzbgn.cn.gov.cn.rzbgn.cn http://www.morning.lyjwb.cn.gov.cn.lyjwb.cn http://www.morning.buyid.com.cn.gov.cn.buyid.com.cn http://www.morning.qsswb.cn.gov.cn.qsswb.cn http://www.morning.ccpnz.cn.gov.cn.ccpnz.cn http://www.morning.hcbky.cn.gov.cn.hcbky.cn http://www.morning.beeice.com.gov.cn.beeice.com http://www.morning.rsmtx.cn.gov.cn.rsmtx.cn http://www.morning.gtdf.cn.gov.cn.gtdf.cn http://www.morning.bftqc.cn.gov.cn.bftqc.cn http://www.morning.ckcjq.cn.gov.cn.ckcjq.cn http://www.morning.hjrjr.cn.gov.cn.hjrjr.cn http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn http://www.morning.kcnjz.cn.gov.cn.kcnjz.cn http://www.morning.qczjc.cn.gov.cn.qczjc.cn http://www.morning.lhldx.cn.gov.cn.lhldx.cn http://www.morning.vuref.cn.gov.cn.vuref.cn