面向对象编程介绍
面向过程编程
核心是过程,也就是流水线思维,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西,主要应用在一旦完成很少修改的地方,如linux内核,git,apache服务器等。
优点:极大降低了程序的设计复杂度
缺点:可拓展性查,改动一个地方很可能要该多个地方,牵一发而动全身
面向对象编程:不是编程的全部,只是用来解决软件可拓展性的
核心是对象,对象作为程序的基本单元,一个对象包含了数据和操作数据的函数,面向对象就是把计算机程序作为一个对象集合,每个对象都能接收其他对象传来的消息,计算机程序的执行就是一系列消息在各个对象之间的传递,主要应用在需求经常变化的软件,一般需求的变化都集中在用户层,互联网应用,企业内部软件,游戏等
优点:解决了程序的可拓展性查的问题,对某一个对象修改会立刻反应到整个程序体系,如lol对一个英雄属性的修改
缺点:可控性差,无法预测程序执行结果,如lol游戏结果
类和对象
对象的概念:
对象也叫做实例,是通过类产生的,对象就是数据属性和方法属性的结合体,比如lol中的英雄,一个英雄就是一个对象,具备生命值,蓝条攻击等数据属性,又具备qwer四个技能属于方法属性。
类的概念:
类包含了一组对象的相同属性部分,在lol中,所有英雄都有名字,标签,生命值,蓝条攻击等,虽然具体的值不同,但是都包含在类中去生成。
在Python中,用变量表示数据属性,用函数表示方法属性。
在现实生活中,先有对象后有类,比如先有的人,后有人类的概念,而在编程中,是先有的类,后有的对象,类生成对象。
声明一个类,和函数的定义类似
定义函数:通过def关键字
1 def functionName(args): 2 '''函数文档字符串''' 3 函数体
定义类:通过class关键字,类的名字一般开头大写,为了和函数区分
1 ''' 2 class 类名: 3 ‘类的文档字符串’ 4 类体 5 ''' 6 7 #我们创建一个类Data类 8 class data: 9 pass
示例:定义一个人类
首先分析人类的特征,首先人类有姓名,性别等属性,还有吃喝拉撒等技能
代码分析:
1 class Human: 2 #属性 3 name = '' 4 age = '' 5 sex = '' 6 #方法 7 def eating(self): 8 print('每晚按时睡觉~对身体好' ) 9 def sleep(self): 10 print('保持每天足够的睡眠时间')