面向对象:对函数进行封装和分类,让开发“更好,更快,更强
使用面向对象编程解决的问题都可以使用面向函数式编程解决,但是在某种特定情况下,面向对象编程要比面向函数式编程更方便,代码更简洁。就好比 递归和while循环一样,递归的逻辑思路要比while循环强
提高代码水平: 将产品需求分成模块,使用模块变成,将功能相同的函数封装一个类中,增加程序可扩展性
下面是面向对象的逻辑图
1、一切事物都是对象:面向对象(妹子)其实就是对”类和对象“的使用
类可以看作一个模块,里面封装很多的方法(函数),可以实现很多的功能
对象是基于类的,可以调用类中很多功能
对象可以调用类中全部的功能吗? 不,有些功能仅使用于类中调用,好处是:调用该功能时,不需要创建对象呦
通过类调用 功能有: 静态字段、静态方法、类方法
通过对象调用的功能有: 普通方法(特殊属性)、普通字段
内存的保存位置:
类:静态字段 (通过类调用)
对象:普通字段 通过(对象调用)
静态字段什么时候使用?
当需要创建对各对象,多个对象中需要使用相同的字段时,可以使用静态字段。(对象只是引用类的字段,并并没有创建)。
我们通过对象调用,可以修改类中的字段吗?
普通方法:
由对象调用:至少使用一个self参数:执行普通参数是,自动将调用方法的对象赋值给self
类方法:
有类进行调用:至少一个cls 参数,执行类方法时,自动将调用该方法的类赋值给cls
静态方法:
有类调用,没有默认参数
既然静态字段和静态方法都是类调用,他们的使用场景是什么样的呢?
其特点:通过类调用,都存储在类中,那就不需要创建对象 。
当所有的对象多需要(使用相同功能的结合)处理某个需求时,我们就可以一个类(有静态字段+静态方法)实现这个需求,这种情景我们统称单例模式
单利模式
使用情景:有N个人需要去对数据库进行修改的的操作, 修改数据(必须要连接数据库)
如果有100个都需要修改数据库,那么普通方法的解决思路是 100个人需要建立100次链接,来修改数据
解决思路:我们建立一个数据库连接池,第一个人连接时,去访问数据库连接池,第二个人访问时,去访问数据连接池。
属性(也成为特性)
定义时,在普通方法的基础上添加@property 的装饰器
定义时,属性仅有一个self
调用时可以去掉括号
属性也是普通方法,只是书写的格式不一样,应用时和普通方法一个叼样
类的成员修饰符号
详情请见
http://www.cnblogs.com/wupeiqi/articles/5017742.html
http://www.cnblogs.com/wupeiqi/p/4766801.html