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


  • 相关阅读:
    微服务架构中的熔断 VS 股票市场中的熔断
    通过异常处理错误
    Java之GC 如何工作
    HBase学习笔记
    日志打印的正确姿势
    告别if/else连环写法
    下载resource下的excel文件
    get请求和post请求参数中文乱码的解决办法
    jquery基础
    45度炸队Alpha冲刺博客集
  • 原文地址:https://www.cnblogs.com/skydragon/p/11674755.html
Copyright © 2011-2022 走看看