组合封装知识点

组合

定义:

组合指的是,一个对象中的属性是另一个对象

目的:

和继承一样,都是为了减少代码的冗余度

总结:
继承:

类与类的关系,一种是什么与什么的关系,子类和父类是从属关系

组合:

对象与对象的关心,一种什么有什么的关系,一个对象拥有另一个对象

封装

定义:

封装指的是把一堆属性(特征与技能)封装到一个对象中。

存数据的目的是为了取,对象可以“,”的方式获取属性

比喻:

对象就好比一个袋子,袋子里面装一堆属性

目的:

为了方便存取,可以通过 对象.属性的方式获取

如何封装:

特征:变量--->数据属性

技能:函数--->方法属性

在类内部,定义一堆属性(特征与技能),通过 对象.属性 = 属性值

访问限制机制

定义:

在类内部定义,凡是以 __ 开头的数据属性与方法属性,都会被Python内部隐藏起来,让外部不能直接访问类内部以 __ 开头的属性

比如: __name = ‘tank’

? def __student(self):

? pass

目的:

一堆隐私的属性与不能被外部轻易访问的属性,可以隐藏起来,不被外部调用

优势:对重要数据获取的逻辑更加严谨,进而保证了数据的安全

接口:

隐私属性可以通过封装一个接口,在接口内做业务逻辑的处理,再把数据返回给调用者

注意:在Python中,不UI强制限制苏醒的访问,类内部__ 开头的属性,只是做了一种变形

若想直接访问,调用变形后的名字即可

例:

__ name , 变形之后就是 _ 类名 __name

property

定义:

Python内置的装饰器,主要是给类内部的方法使用

目的:

使用他的目的就是将类内部的方法(def 方法名())变成了(def 方法)

在对象调用某一个方法时,将 对象.方法()变成对象。(看起来就像一个普通的数据)

如何使用:
@property

def 方法():

多态

定义:

多态指的是同一种事物的多种形态

目的:

多态也称之为多态性,在程序中继承就是多态的表现形式;

多态的目的是为了让多种不同类型的对象,在使用相同功能的情况下,调用同一个名字的方法名。

父类:定义一套统一的标准

子类:遵循父类统一的标准

多态的最终目的:同一子类编写的规范,为了来让使用者更方便的调用下昂通功能的方法

如何实现:

继承

注意:在Python中,不会强制要求子类必须遵循父类的一套标准,所以出现了抽象类

抽象类:

定义:

abc模块 abstract_class

目的:

强制子类必须遵循父类的一套标准

如何使用:

import abc

鸭子类型

定义:

在不知道当前类是什么的情况下,但是你长的像鸭子,那么你就是鸭子类型

在Python中,不推荐使用抽象类限制子类的定义,但是推荐,类都遵守鸭子类型

继承:耦合性太高,程序可扩展性差

鸭子类型:耦合程度低,程序的可扩展性强

原文地址:https://www.cnblogs.com/justztz/p/11659887.html

时间: 2024-11-08 21:43:47

组合封装知识点的相关文章

组合,封装与多态

组合: 1.什么是组合? 组合指的是一个对象中的属性,是另一个对象. 2.为什么要使用组合? 组合目的和继承一样, 为了减少代码冗余. 3.如何使用组合: 封装(夺命三问): 1.什么是封装? 比喻: 封: 比如把一个袋子封起来. 装: 比如把一堆小猫,小狗,nick装到袋子里. 封装指的是把一堆属性(特征与技能)封装到一个对象中. 存数据的目的是为了取, 对象可以"."的方式获取属性. 比喻: 对象就好比一个袋子, 袋子里面装一堆属性. 2.为什么要封装? 封装的目的为了方便存取,可

第二十六天 组合 封装 多态

上节内容回顾: 1.继承 ps:继承解决的是类与类之间的代码冗余问题 2.如何继承:先抽象 再继承 3.Python 中继承的特点: 1. 单继承 多继承 2. 新式类 经典类 今日内容: 1.组合 2.封装 3.多态 一.组合 1.什么是组合 一个对象的属性是来自另一外一个类的对象,称之为组合 2.为何用组合 组合也是用来解决类与代码冗余的问题 3.如何用组合 class Foo: aaa=1111 def __init__(self,x,y) self.x=x self.y=y def fu

组合, 封装, 多态补充

一. 什么是组合 对象的属性是另一个对象或者可以认为一个对象是另一个对象属性 为什么使用组合?===> 减少代码的冗余 class Person: school = 'oldboy' class Teacher(Person): def __init__(self,name,age,level,course): self.name=name self.age=age self.level=level #course是课程对象,表示老师教授的课程 self.course=course class

php 封装 知识点

类由众多对象抽象出来的对象由类实例化出来的 成员变量成员方法成员属性 访问修饰符public 公有的protected 受保护的private 私有的 构造函数1.写法特殊2.执行时间特殊 面向对象的三大特性 继承 封装 多态 1.封装目的:为了使一个类更加安全做法:1.将成员变量变为私有的2.在类里面做方法来间接访问成员变量3.在方法里面加控制 class Ren{ public $code; //人员代号 private $name; //人员名称 private $sex; //人员性别

JavaEE开发之Spring中的条件注解、组合注解与元注解

上篇博客我们详细的聊了<JavaEE开发之Spring中的多线程编程以及任务定时器详解>,本篇博客我们就来聊聊条件注解@Conditional以及组合条件.条件注解说简单点就是根据特定的条件来选择Bean对象的创建.条件注解就是可以根据不同的条件来做出不同的事情.在Spring中条件注解可以说是设计模式中状态模式的一种体现方式,同时也是面向对象编程中多态的应用部分.而组合注解就是将现有的注解进行组合.下方会给出具体的介绍和实例. 一.条件注解[email protected] 本篇博客的本部分

自然语言处理(NLP) - 数学基础(1) - 排列组合

正如我在<自然语言处理(NLP) - 数学基础(1) - 总述>一文中所提到的NLP所关联的概率论(Probability Theory)知识点是如此的多, 饭只能一口一口地吃了, 我们先开始最为大家熟知和最基础的知识点吧, 排列组合. 虽然排列组合这个知识点大家是相当地熟知, 也是相当地基础, 但是却是十分十分十分地重要. NLP届掌门人斯坦福大学的Daniel Jurafsky(D. 朱夫斯凯)和科罗拉多大学James H. Martin(J. H. 马丁)在其NLP巨作<自然语言处

[转载] 像 IDE 一样使用 vim

原文: https://github.com/yangyangwithgnu/use_vim_as_ide 看了这篇文章要是再不会用vim就不能怪我了. 所需即所获:像 IDE 一样使用 vim [email protected]2015-02-15 13:30:59 谢谢 捐赠:支付宝 [email protected] .支付宝链接https://shenghuo.alipay.com/send/payment/[email protected] ,支付宝二维码 $_$ 二手书:书,我提高开

超市帐单系统

一.设计需求 注意事项:1.登录界面应该有用户名和密码非空验证,登录错误有错误信息提示:2.根据用户权限不同,左侧菜单树展示内容不同(普通用户和管理员之分),普通用户只能修改自己账户的信息,不能修改其他用户信息:3.管理员不能添加和修改账单信息,但是可以删除账单信息:4.账单.供应商和用户模块都具有组合查询功能(模糊查询):5.账单.供应商.用户和修改密码页应具有格式验证功能(js实现):6.关键操作应该具有提示功能(删除,修改,增加):7.浏览信息表信息时,各功能框不可修改(锁死):二.设计素

所需即所获:像 IDE 一样使用 vim

所需即所获:像 IDE 一样使用 vim 转载 [email protected]2015-11-08 10:05:53 谢谢 捐赠:支付宝 [email protected] .支付宝链接https://shenghuo.alipay.com/send/payment/[email protected] ,支付宝二维码 $_$ 二手书:书,我提高开发技能的重要手段之一,随着职业生涯的发展,书籍也在不断增多,对我而言,一本书最多读三遍,再往后,几乎没有什么营养吸收,这部分书对我已基本无用,但对其