zoukankan      html  css  js  c++  java
  • 封装

    封装就是隐藏。

    1:封装数据

    将数据隐藏起来这不是目的。隐藏起来然后对外提供操作该数据的接口,然后我们可以在接口附加上对该数据操作的限制,以此完成对数据属性操作的严格控制。

    class People:
        def __init__(self, name, age):
            self.__name = name
            self.__age = age
    
        def tell_info(self):
            print('name:<%s>, age:<%s>'% (self.__name, self.__age))
    
        def set_info(self, name, age):
            if not isinstance(name, str):
                print('输入的名字错误')
                return
            if not isinstance(age, int):
                print('输入的年龄错误')
                return
            self.__name = name
            self.__age = age
    
    
    class Teacher(People):
        def __init__(self,name, age, lever):
            super().__init__(name, age)
            self.lever = lever
    
    t1 = Teacher('zheng', 26, 10)
    
    t1.tell_info()
    t1.set_info('wang', 30)
    t1.tell_info()

    2:目的是隔离复杂度

    #取款是功能,而这个功能有很多功能组成:插卡、密码认证、输入金额、打印账单、取钱
    #对使用者来说,只需要知道取款这个功能即可,其余功能我们都可以隐藏起来,很明显这么做
    #隔离了复杂度,同时也提升了安全性

    class ATM:
        def __card(self):
            print('插卡')
        def __auth(self):
            print('用户认证')
        def __input(self):
            print('输入取款金额')
        def __print_bill(self):
            print('打印账单')
        def __take_money(self):
            print('取款')
    
        def withdraw(self):
            self.__card()
            self.__auth()
            self.__input()
            self.__print_bill()
            self.__take_money()
    
    a=ATM()
    a.withdraw()
  • 相关阅读:
    矩阵乘法
    年关了,抛一个模拟ip刷票的php程序
    mysql处理大数据合并的另一种方法
    php之aop实践
    轻量级php框架phpk v1.0发布
    eclipse
    super关键字的使用
    方法的重写
    方法的重载
    java 构造器 (构造方法)
  • 原文地址:https://www.cnblogs.com/zhengyiqun1992/p/10279037.html
Copyright © 2011-2022 走看看