美文网首页
python-面向对象->封装

python-面向对象->封装

作者: 云Shen不知处 | 来源:发表于2017-07-26 21:41 被阅读0次

封装:将一堆零碎的东西封箱装起来!

为什么需要封装?封装的作用和含义?

比如:①我要看电视,只需要按一下开关和换台就可以了。有必要了解电视机内部的结构吗?有必要碰碰显像管吗?②我要开车,……

隐藏对象内部的复杂性,只对外公开简单的接口,便于外界调用,从而提高系统的可拓展性、可维护性。

我们程序设计要追求“高内聚、低耦合

高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;

低耦合:仅暴露少量的方法给外部使用

封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提供的接口来访问该对象。生活中的例子:到饭馆吃饭,你只需要跟服务员讲你要吃什么饭菜,服务员就会跟后台厨房的厨师说明一下,等待一段时间后,饭菜就被服务员直接递送到你面前,作为客户的你是不知道也无需知道饭菜的具体做法,后台厨房的厨师及做饭菜的过程就是被封装的细节,而服务员则是公开暴露的访问路径,你只能通过服务员点餐然后获得饭菜,而不能直接去到后台厨房要求厨师如何做饭菜;

1.什么时候应该封装类

a>当项目中出现一些零散的、有关系的基本类型数据时,考虑通过类型将这些数据统一组织起来管理。定义一个自定义类,将这些数据作为自己的属性。

商品单价:price,商品名称:name,商品库存:stock,商品产地:addr

考虑通过类型进行包含

classGoods:

def __init__():

b>将对象敏感的数据,封装在类的内部,不让外界直接访问;而是通过定义的set/get方法来间接访问内部的数据的过程,此时,就可以在set/get方法中,添加条件限制代码!属性私有化,才能让外界不能直接访问

class Mobilephone(object):

def__init__(self, name,password,price):

self.name = "iphone"

self._price ="price"

self.__password= password

def set_name(self, password):

       self.__password = password

def get_name(self):

      return self.__password

def __str__(self):

return"品牌%s;价格:%s;解锁密码:%s"%(self.__name,self.__price,           self.__ passsword)

p = Mobilephone("t",12)

print(p.name)

print(p._prince)

print(p.get_password)

你会看到以一个下划线开头的实例变量名,比如_price,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。

带两个下划线的属性:私有属性。不能从外部访问,必须打招呼才能访问!

相关文章

  • python-面向对象->封装

    封装:将一堆零碎的东西封箱装起来! 为什么需要封装?封装的作用和含义? 比如:①我要看电视,只需要按一下开关和换台...

  • python 面向对象封装案例

    面向对象封装案例 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 ...

  • 14.Python对象封装

    面向对象封装案例 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 ...

  • 面试 | java基础

    面向对象 1、面向对象特征? 封装封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成...

  • OC面向对象

    OC面向对象—封装 一、面向对象和封装 面向对象的三大特性:封装(成员变量)、继承和多态 在OC语言中,使用@in...

  • python 面向对象封装案例 II

    面向对象封装案例 II 目标 士兵突击案例 身份运算符 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一...

  • 面向对象核心技术

    面向对象核心技术 面向对象编程有3大基本特性:封装、继承和多态。 (1)类的封装:封装是面向对象编程的核心思想。封...

  • 面向对象, equals与 ==区别演示,print与print

    一. 面向对象 1.理解面向对象的概念 类与对象 三大特征:封装示例封装演示 面向对象: 在调用对象时,除了要指定...

  • 面向对象之封装

    面向对象之封装 封装是面向对象最重要的特征之一,封装就是指隐藏。 对象隐藏了数据(例如priv...

  • 2019-01-06

    面向对象的三大特点(封装,继承,多态)基于对象 (封装)OOA 面向对象的分析(OOA,Object Orient...

网友评论

      本文标题:python-面向对象->封装

      本文链接:https://www.haomeiwen.com/subject/xzookxtx.html