面向对象的三大特性: 封装

Posted skydragon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的三大特性: 封装相关的知识,希望对你有一定的参考价值。

封装:

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)  # 类名不能访问私有静态字段

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


  # a1.func()

# 对于私有静态字段,类的内部可以访问.

  # a1.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

 



以上是关于面向对象的三大特性: 封装的主要内容,如果未能解决你的问题,请参考以下文章

面向对象三大特性之封装

面向对象三大特性(封装/继承/多态)

面向对象编程三大特性-封装、继承、多态

面向对象三大特性-----封装继承多态

面向对象 三大特性 五大原则

面向对象(三大特性)