面向对象的三大特性
面向对象编程,是许多编程语言都支持的一种编程思想。
简单理解是:基于模板(类)去创建实体(对象),使用对象完成功能开发。
面向对象包含3大主要特性:
· 封装
· 继承
· 多态
封装
封装表示的是,将现实世界事物的:
· 属性
· 行为
封装到类中,描述为:
· 成员变量
· 成员方法
从而完成程序对现实世界事物的描述
私有成员
既然现实事物有不公开的属性和行为,那么作为现实事物在程序中映射的类,也应该支持。
类中提供了私有成员的形式来支持。
· 私有成员变量
· 私有成员方法
定义私有成员的方式非常简单,只需要:
· 私有成员变量:变量名以__
开头(2个下划线)
· 私有成员方法:方法名以__
开头(2个下划线)
即可完成私有成员的设置
使用私有成员
代码示例:
# 定义一个类,内含私有成员变量和私有成员方法
class Phone:
# 定义一个私有成员变量
__current_voltage = 0.5 # 当前手机运行电压
# 定义一个私有成员方法
def __keep_single_core(self):
print("让CPU以单核模式运行")
def call_by_5g(self):
if self.__current_voltage >=1:
print("5G通话已开启")
else:
self.__keep_single_core()
print("电量不足,无法使用5G通话,兵役设置为单核运行进行省电")
phone = Phone()
phone.call_by_5g()
总结:
- 封装的概念是指?
将现实世界事物在类中描述为属性和方法,即为封装。 - 什么是私有成员?为什么需要私有成员?
现实事物有部分属性和行为是不公开对使用者开放的。同样在类中描述属性和方法的时候也需要达到这个要求,就需要定义私有成员了 - 如何定义私有成员?
成员变量和成员方法的命名均以__作为开头即可 - 私有成员的访问限制?
类对象无法访问私有成员
类中的其它成员可以访问私有成员
练习小案例
代码示例:
# 设计一个类,用来描述手机
class Phone:
# 提供私有成员变量:__is_5g_enable
__is_5g_enable = True # 5G状态
# 提供私有成员方法:__check_5g()
def __check_5g(self):
if self.__is_5g_enable:
print("5G开启")
else:
print("5G关闭,使用4G")
# 提供公开成员方法:call_by_5g()
def call_by_5g(self):
self.__check_5g()
print("正在通话中")
phone = Phone()
phone.call_by_5g()