封装:将一堆零碎的东西封箱装起来!
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方法