python_面向对象三大特征-封装

面向对象的三大特征:
封装,继承与多态

封装特征:
实际工作中很多的成员不方便为对象之外的访问或者操作的,所以需要限定以下是否可以操作成员。
封装特性就是对于成员操作进行限制的保护性措施!
封装方法:__属性 __方法

面向对象的封装分为三个级别:
    私有化封装  	private
    受保护的封装	protected(在继承中讲解)
    公共的封装  	public

对象/类成员的访问:
    1.当前类/对象内部访问 (在类的结构内部)
    2.类和对象的外部访问  (在类的结构外部)
    3.类和对象的子类/子对象的访问(在类的结构外部,在子类/对象的内部)
私有化封装:
    方法:在成员属性或者方法名称之前,添加双下划线,就可以私有化成员。
    特征:私有化的成员属性和方法,无法在类/对象的外部访问;私有化成员仅允许在类/对象的内部访问
公共的封装:
    方法: 任何成员在没有进行私有化操作的时候默认都是公共的封装。
    特征: 公共的封装成员属性和方法,在任何位置都可以被访问。
访问封装:(禁止使用)
	内部访问:名称前加__双下划线即可

python封装秘密(并没有实现真正的私有化!):(了解,但是不允许使用)
其实python没由实现和其他语言一样的面向对象封装策略(还不是很完备)

私有化封装采用了name mangling(改名) 的策略实现的私有化操作。并不是真正的私有化!
改名策略:将原有成员属性或者方法名 修改为 _类名__成员名
访问使用对象._类名__成员名即可
# 面向对象三大特性:封装,继承,多态
# python的封装:1.公共的封装 2.私有化封装 3.受保护的封装
# 公共的封装
# 公共的封装 允许类的内外部进行访问
# 写一个类就是公共的封装
class FengZhuang:
    sex = "机器人"
    name = "人工智能"
    # 成员方法
    def feng(self):
        print("封印起来")
fz = FengZhuang()
# 
# 私有化的封装
# 私有化的封装只能在类内部访问,不能在外部访问
# 私有化封装,就是在属性/方法名前加两个下划线__

class Human():
    # 成员属性
    name = "人类"
    __girlfriend = "女朋友"
    # 成员方法
    def move(self):
        print(self.__girlfriend)
        self.__love()
        print("人类使用交通工具")
    def __love(self):
        print("开心的造人")
wenguang = Human()
wenguang.move()
print(wenguang.__girlfriend)
print(Human.girlfriend)
# 调用成员方法


# 强行的访问私有化的属性
# python采用了改名策略来实现的私有化封装
class Human():
    # 成员属性
    name = "人类"
    __girlfriend = "女朋友"
    # 成员方法
    def move(self):
        print(self.__girlfriend)
        self.__love()
        print("人类使用交通工具")
    def __love(self):
        print("开心的造人")
wenguang = Human()

# _类名__属性名/方法名
print(wenguang._Human__girlfriend)
wenguang._Human__love()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值