前言
封装是将一些基本的数据类型复合成一个自定义的类型,本文从数据角度和行为角度简单介绍下面向对象的封装。
一、封装是什么?
面向对象有三大特征,分别是封装,继承,多态。封装是将一些基本的数据类型复合成一个自定义的类型。
二、封装的概念
1、封装
-
1、数据角度
概念:-
将一些基本的数据类型复合成一个自定义的类型
优点: 1、建立数据与对象之间的关联 2、代码可读性强
2、行为角度
-
-
定义:
类外提供必要的功能,隐藏实现的细节。
空调(冷风、暖风、节电)优点: 使用者不必关心实现细节,只需要关注提供的功能方法。 私有成员: 定义: 在成员(变量、方法)前面加上 __(2个下划线) 特点: 只能在类内方法,类外不能直接通过名字访问 作用: 无需向外提供的成员,通过私有化进行【屏蔽】 说明: 类中实例对象的私有变量/私有方法: _类名__变量名 _类名__方法名([参数列表]) 目的: 1、实现对实例变量的保护 2、实现对数据有效性验证 3、实现正常的属性的访问(读取/写入) 措施: class 类名: def __init__(self, [参数列表]): self.age = age # 读取 def get_age(self): return self.__age # 写入 def set_age(self, value): if : self.__age = value else: ... # 建立实例化与数据有效验证的联系 age = property(get_age, set_age) # 类变量
三、封装的实例讲解
# 封装
class Wife:
def __init__(self, name, age):
self.name = name
self.age = age
w01 = Wife('圆圆', 18)
print(w01.name, w01.age)
w01.age = 100
print(w01.age)
# 问题:对象可以操作属性,数据变的不合理
# 封装-私有成员
class Wife:
def __init__(self, name, age