zoukankan      html  css  js  c++  java
  • 面向对象的三大特性: 封装

    封装:

    1,广义的封装:

        给对象封装属性,给类中封装静态字段:

    2,狭义的封装: 私有制.私有成员:

        私有成员:

          
    静态私有字段,静态私有方法,静态私有对象属性.

        只能在自己类中访问,不能再类的外部,或者派生类中访问.

    # 私有静态字段
    class B:
        __money = 100000
    
    class A(B):
        name = 'alex'
        __age = 1000
    
        def func(self):
            print(self.__age)
            print(A.__age)    # 对于私有静态字段,类的内部可以访问.
            print('func....')
        def func1(self):
            print(self.__money)
            print(A.__money)
    a1 = A()
    print(a1.name)
    print(A.name)
    # print(a1.__age)  # 实例化对象不能访问私有静态字段
    # print(A.__age)  # 类名不能访问私有静态字段

    # 对于私有静态字段,类的外部不能访问.

      # print(a1.__age)  # 实例化对象不能访问私有静态字段
      # print(A.__age  # 类名不能访问私有静态字段
    # 对于私有静态字段,类的内部可以访问.

      #a.func()

    # 对于私有静态字段来说,只能在本类中内部访问,类的外部,派生类均不可访问.
      
      #a.func1()


    # 可以访问,但是工作中千万不要用.
      # print(A._A__age)
      # print(A.__dict__)

    # 私有方法
    class B:
        __money = 100000
        def __f1(self):
            print('B')
    
    class A(B):
        name = 'alex'
    
        def __func(self):
            print('func....')
    
        def func1(self):
            # self.__func()   # 类的内部可以访问
            self.__f1()
    a1 = A()
    a1.__func()  # 类外部不能访问
    a1.func1()  # 类的内部可以访问
    a1.func1()  # 类的派生类也不能访问.

    # 面试题
    class Parent:
        def __func(self):
            print('in Parent func')
    
        def __init__(self):
            self.__func()
    
    class Son(Parent):
        def __func(self):
            print('in Son func')
    
    son1 = Son()
    in Parent func


  • 相关阅读:
    七 HBase表结构设计
    六 一行数据存储到文件的过程。
    五、数据模型特殊属性
    四 数据模型操作
    三、 数据模型概念
    二、 HBase核心功能模块。
    一、 Hbase特性 3v特性,Volume(量级) Varity(种类) Velocity(速度)
    windows下安装redis
    redis缓存穿透和缓存雪崩
    java多线程四种实现方法
  • 原文地址:https://www.cnblogs.com/skydragon/p/11674755.html
Copyright © 2011-2022 走看看