封装的意义: 将属性和方法放到一起做为一个整体,然后通过实例化对象来处理; 隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了; 对类的属性和方法增加 访问权限控制。 私有权限:在属性名和方法名 前面 加上两个下划线 __ 类的私有属性 和 私有方法,都不能通过对象直接访问,但是可以在本类内部访问; 类的私有属性 和 私有方法,都不会被子类继承,子类也无法访问; 私有属性 和 私有方法 往往用来处理类的内部事情,不通过对象处理,起到安全作用。
demo:私有方法和私有属性 子类通过调用通过实例方法调用私有属性和方法,不能直接调用
子类不能继承父类私有属性和方法
私有属性和私有方法:
总结: 1). 私有属性,可以在类内部通过self调用,但不能通过对象访问 2). 私有方法,可以在类内部通过self调用,但不能通过对象访问 3). 对象不能访问私有权限的属性和方法 4). 子类不能继承父类私有权限的属性和方法 5). Python中没有像C++中 public 和 private, protected 这些关键字来区别公有属性和私有属性。 6). Python是以属性命名方式来区分,如果在属性和方法名前面加了2个下划线'__',则表明该属性和方法是私有权限,否则为公有权限。
修改私有属性的值:
修改私有属性的值:
总结: 现代软件开发中,通常会定义get_xxx()方法和set_xxx()方法来获取和修改私有属性值 get_xxx()方法-->返回私有属性的值 set_xxx()方法-->接收参数,修改私有属性的值 对象不能访问私有权限的属性和方法,可以通过访问公有方法set_money()来修改私有属性的值,可以通过访问公有方法get_money()来获取私有属性的值
实例属性:
实例(对象)不能修改类属性
QQ测试用例