[Python]关于面向对象(封装)

2017-09-05  本文已影响0人  岁月神偷_bde8

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

1.什么是封装?

封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。该逻辑单元负责将所描述的属性隐藏起来,外界对客体内部属性的所有访问只能通过提供的用户接口实现。这样做既可以实现对客体属性的保护作用,又可以提高软件系统的可维护性。只要用户接口不改变,任何封装体内部的改变都不会对软件系统的其他部分造成影响。结构化设计方法没有做到客体的整体封装,只是封装了各个功能模块,而每个功能模块可以随意地对没有保护能力客体属性实施操作,并且由于描述属性的数据与行为被分割开来,所以一旦某个客体属性的表达方式发生了变化,或某个行为效果发生了改变,就有可能对整个系统产生影响。

2.如何实现封装?

例如:

# 定义了一个商品类型,封装和商品有关系的数据

class Goods:

def __init__(self, name, price, stock):

self.name = name

self.price = price

self.stock = stock

#封装具体的数据到对象中:对象是通过类型来封装具体的数据的

g1 = Goods(“连衣裙”, 199, 120)# 将对象敏感的数据,封装在类的内部,不让外界直接访问;而是通过定义的set/get方法来间接访问内部的数据的过程,此时,就可以在set/get方法中,添加条件限制代码!

例如:

class Person:

         def__init__(self, name, age):

                  self.__name = name

                  self.__age = age

         def set_name(self, name):

                  self.__name = name

         def get_name(self):

                  returnself.__name

         def set_age(self, age):

                  if age >= 0 and age <= 100:

                            self.__age = age

                  else:

                            print("设置的年龄不合法...")

        def get_age(self):

                   returnself.__age

        def__str__(self):

                   return"姓名:%s;年龄:%s"% (self.__name,self.__age)

3.封装实现的步骤

1.完成一个类的定义

2.所有属性私有化

3. 给每个属性提供set/get方法

上一篇 下一篇

猜你喜欢

热点阅读