一.面向对象的概念:
什么是面向对象?
面向对象是一种编程思想,是前辈们总结出的经验,为了指导程序员如何编写出更好的程序。
核心是对象,程序就是一系列对象的集合,而程序员负责调度控制这些对象来交互着完成任务。
面向对象:
找个具备装大象的技能对象。
优点:拓展性、灵活性、复用性高
缺点:程序复杂度高、无法准备预判结果
使用场景:通常直接面向用户的程序。例如QQ、微信
什么是面向过程编程思想?
关注的核心是过程,过程就是一步一步的执行
面向过程:
1.打开冰箱;
2.装入大象
3.关闭冰箱
优点:逻辑清晰,复杂问题简单化,流程化
缺点:拓展性差,可维护性差
使用场景:对拓展性要求较低的程序。例如系统内核,Git,计算机
二、.类和对象的概念
类:即类型,是一种抽象概念
是一些列具备相同特征和相同行为的对象的集合
对象:
具备存在的某个事物,具备自己的特征和行为
对象就是特征和技能的综合体
二者关系:
类包含一些列对象,
对象属于某个类
总结出一个结论:在使用面向对象编程时,第一步就是思考需要什么样的对象,对象具备什么样的特征和行为,从而根据这些信息总结出需要的类型
三、.如何创建类和对象
定义类的语法:
class 类的名称: # 类中的内容 描述属性和技能 #描述属性用变量 #描述行为用函数 #类名称 书写规范 首先是见名知意 名称是大驼峰命名法 #驼峰就是单词首字母大写 , 大驼峰是第一个字母大写,小驼峰是第一个字母小写
创建对象的语法:
class Person: pass #创建对象 p = Person()
四.类的属性
属性的写法:
属性可以写在类中,类的属性,是所有对象公共的
属性也可以写在对象中,对象中的属性,是每个对象独特的
属性的增删改差:
增加属性 对象变量名称.属性名称 = 属性值
删除属性 del 对象的变量名称.属性名称 修改 对象.属性 = 新的值 查看属性 访问的是对象的所有属性 print(对象.__dict__) 访问对象的类信息 print(对象.__class__)
属性的查找顺序
ps:如果类中和对象中存在同样的属性,先访问对象,如果没有再访问类
五、.初始化方法
__init__方法叫做初始化方法,本质就是一个函数
特点:
1、当实例化对象时,会自动执行init 方法
2、会自动将对象作为第一个参数传入,参数名称为self,self可以是别的名字,但不建议改
功能:用户给对象赋初始值
对象的精髓就是讲数据和处理数据的函数整合到一起 ,这样一来拿到一个对象就同时拿到了需要处理的数据以及处理数据的函数
六、绑定方法与非绑定方法
对象的绑定方法:
默认情况下类中的方法都是对象的绑定方法,其特殊之处在于,当使用对象调用该函数时会自动传入对象本身,作为第一个参数。
当使用类名来调用时他就是一个普通函数,有几个参数就有几个参数
类绑定法法:
类绑定方法用@classmethod来装饰
特殊之处:不管用类还是对象调用,都会自动传入类本身,作为第一个参数
ps:
什么时候绑定给对象:当函数逻辑需要访问对象中的数据时
什么时候绑定给类:当函数逻辑需要访问类中的数据时
非绑定方法:(不常用)
叫做静态方法,即不需要访问对象的数据
语法:@staticmethod