Python学习打卡:day14

day14

笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了

102、封装

三大特性

面向对象包含3大主要特性:

  • 封装
  • 继承
  • 多态

封装表示的是,将现实世界事物的:

  • 属性
  • 行为

封装到类中,描述为:

  • 成员变量
  • 成员方法

从而完成程序对现实世界事物的描述
在这里插入图片描述

对用户隐藏的属性和行为

现实世界中的事物,有属性和行为。

但是不代表这些属性和行为都是开放给用户使用的。

私有成员

既然现实事物有不公开的属性和行为,那么作为现实事物在程序中映射的类,也应该支持。

类中提供了私有成员的形式来支持。

  • 私有成员变量
  • 私有成员方法

定义私有成员的方式非常简单,只需要:

  • 私有成员变量:变量名以 __开头(2个下划线)
  • 私有成员方法:方法名以 __开头(2个下划线)

即可完成私有成员的设置。

示例图如下:

在这里插入图片描述

使用私有成员

  • 私有方法无法直接被类对象使用
    在这里插入图片描述
    在这里插入图片描述

  • 私有变量无法赋值,也无法获取值

    在这里插入图片描述

  • 私有成员无法被类对象使用,但是可以被其它的成员使用
    在这里插入图片描述

示例代码:

"""
演示面向对象封装思想中私有成员的使用
"""

# 定义一个类,内含私有成员变量和私有成员方法
class Phone:
    # __current_voltage = None    # 当前手机运行电压
    # __current_voltage = 1
    __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()

# error: 不能直接使用私有成员
# phone.__keep_single_core()
# print(phone.__current_voltage)

103、封装的课后习题

在这里插入图片描述

示例代码:

class Phone:
    # __is_5g_enable = None
    __is_5g_enable = True
    # __is_5g_enable = False

    def __check_5g(self):
        if self.__is_5g_enable == True:
            print("5g开启")
        else:
            print("5g关闭,使用4g网络")

    def call_by_5g(self):
        self.__check_5g()
        print("正在通话中")

phone = Phone()
phone.call_by_5g()

104、继承

在这里插入图片描述

  • 继承分为:单继承和多继承
  • 使用如图语法,可以完成类的单继承。
  • 继承表示:将从父类那里继承(复制)来成员变量和成员方法(不含私有)

单继承

继承前:

在这里插入图片描述

继承后:

在这里插入图片描述

示例代码:

# 演示单继承
class Phone:
    IMEI = None         # 序列号
    producer = "ITCAST"     # 厂商

    def call_by_4g(self):
        print("4g通话")

class Phone2022(Phone):
    face_id = "10001"   # 面部识别ID

    def call_by_5g(self)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值