面向对象的精髓是:将数据和处理数据的代码绑定,成为一个9对象
只要获取到对象,相应的数据和方法都有了
组合:在一个对象内引用其他对象
组合可以降低代码的冗余,降低耦合度
继承是类之间的关系,组合是对象之间
封装:隐藏内部细节,对外实现使用接口
封装可以提高安全性
封装是为了明确区分内部与外部
在属性或方法名称前加上两个下划线,就可以将其设置为私有属性
python中只有两种权限公开 私有
属性的封装通过需要提供相应的设置器和访问器
封装的特点:
被隐藏的内容,在内部可以访问,外部无法访问
封装并没有真正意义上限制外部直接访问属性,可以通过_类名__属性访问,仅仅只是语法意义上的变形,主要用来限制外部的直接访问
变形的过程只在类的定义时发生一次之后的复制操作不会变形
3.继承中,父类可以通过将方法定义为私有限制子类覆盖