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