面向对象三大特性 :
如果一门编程语言支持 面向对象 思想 , 那么就可以基于 类 创建 实例对象 , 使用 实例对象 实现具体的代码功能 , 同时支持 以上 封装 / 继承 / 多态 三大特性 ;
封装 ( Encapsulation ) : 将 数据 和 操作数据的方法 包装在一起 , 隐藏 数据的内部细节 , 防止外界的直接访问和修改 ;
将 现实世界 的 事物 的
通过描述 , 封装到 程序世界 中 ,
封装 , 可以实现 程序世界 对 现实世界 事物的描述 ;
封装代码示例 : 下面的代码 封装了 学生的 属性 和 行为 , 属性有 年龄 和 姓名 , 行为有 说话 ;
# 定义 Python 类
class Student:
name = None
age = None
def say(self):
print(f"{self.name} is {self.age} years old")
现实世界 中的 事物 , 有很多的 属性 和 行为 , 拿手机举例 :
对用户开放的 属性 和 行为 :
有些 属性 和 行为 不对用户开放 , 属于隐藏的 , 如 :
现实世界 中 , 事物有 隐藏的 属性 和 行为 ,
将 现实世界 中的事物 映射到 程序世界 中 , 类 也有隐藏的 属性 和 行为 ,
隐藏的 属性 和 变量 , 又称为 私有成员 ;
定义私有成员 :
__私有成员变量名
;__私有成员方法名
;下面的代码中 , 定义了 私有成员 :
# 定义私有成员
__address = None
# 定义私有成员方法
def __say(self):
print(f"地址是 {self.__address}")
代码示例 :
"""
面向对象 - 封装
"""
# 定义 Python 类
class Student:
name = None
age = None
# 定义私有成员
__address = None
# 定义私有成员方法
def __say(self):
print(f"地址是 {self.__address}")
def __init__(self, name, age, address):
self.name = name
self.age = age
self.address = address