参考(都要认真看看):http://www.cnblogs.com/alex3714/articles/5188179.html
http://www.cnblogs.com/alex3714/articles/5213184.html
面向对象3大特性:封装,继承,多态
类:
属性:实例变量,类变量,私有属性__(两个下划线)
方法:构造方法,析构函数(不写的话,默认就有,相当于重构),私有方法
对象(类的实例):实例化一个类之后得到的对象
封装:把一些功能的实现细节不对外暴露(
封装的概念:
将对象的数据与操作数据的方法相结合,通过方法将对象的数据与实现细节保护起来,就称为封装。外界只能通过对象的方法访问对象,因此封装同时也实现了对象的数据隐藏。
在使用面向对象的封装特性时,需要:将内容封装到某处,和从某处调用被封装的内容
eg:类中的self 是一个形式参数,当执行 obj1 = Foo('wupeiqi', 18 ) 时,self 等于 obj1当执行 obj2 = Foo('alex', 78 ) 时,self 等于 obj2所以,内容其实被封装到了对象 obj1 和 obj2 中)
继承:代码的重用(继承和组合)
单继承
多继承:
py2.7 经典类:深度优先 新式类:广度优先
py3.x 均是广度优先
以后均按照新式类class Foo(object)写
多态:接口重用,一种接口,多种实现
静态方法:只是名义上归类管理,实际上在静态方法里访问不了类或实例中的任何属性
类方法:只能访问类变量,不能访问静态变量
属性方法:把一个方法变成一个静态属性