zoukankan      html  css  js  c++  java
  • 封装

    # 类的三大特性:继承,封装,多态。

    # 封装?

    class A:

    def __init__(self,name):
    self.name = name

    obj = A('二狗')
    # 广义的封装:就是将一些内容放到一个'容器'中.
    # 狭义的封装:私有。
    # 类的结构:
    class B:
        country = 'China'  # 静态变量(属性,字段)
        __name = 'alex'  # 私有静态变量
    
        def func(self):  # 动态普通方法
            pass
    
        def __func(self):  # 私有方法
            pass
    
        def __init__(self,name,age):  # 特殊方法:双下方法
            self.name = name
            self.__age = age  # 私有对象属性
        @property  # 属性
        def f1(self):
            pass
    
        @classmethod  # 类方法
        def func2(self):
            pass
    
        @staticmethod  # 静态方法
        def func3(self):
            pass
    # 私有成员:私有变量,私有对象属性,私有方法
    # 私有成员:类外面不可以访问,派生类不可以访问,类内面可以访问
    class A:
        country = 'China'  # 静态变量(属性,字段)
        __name = 'alex'  # 私有静态变量
        def __init__(self, name, age):
            self.name = name
            self.__age = age
    
        def func(self):  # 动态普通方法
            print(self.__name)
    
        def __func(self):  # 私有方法
            pass
    
    class B(A):
        def func2(self):
            print(self.__name)
    
    obj = A('二狗', 18)
    print(obj.country) # 类外面可以访问
    print(obj.__name)  # 私有:类外面不可以访问
    
    obj.func()  # 私有:类内面可以访问
    
    o1 = B('脸哥', 25)
    o1.func2()  # 私有:派生类不可以访问
    
    obj = A('二狗', 18)
    print(A.__dict__)
    print(obj._A__name)  # 这样可以访问,但是千万不要这样访问,这个是python犯懒了,c语言中私有成员在类外面是不能访问的。

     

  • 相关阅读:
    编程题目----约德尔测试
    编程题目----路灯
    java----java垃圾回收算法
    JAVA多线程和并发基础面试问答(转载)
    科学史上非常伟大的十位单身科学家
    MySQL----mysql57服务突然不见了的,解决方法
    linux:644、755、777权限详解
    Java 关键字 速查表
    java----鲁棒性
    习题----第六章 图(转)
  • 原文地址:https://www.cnblogs.com/wangkaiok/p/9987765.html
Copyright © 2011-2022 走看看