面向对象
(一)什么是面向对象?
OOP–面向对象编程,是一种程序设计思想,该思想将对象作为程序的基本单元。
面向过程和面向对象对比:
面向过程的程序设计核心是过程–流水线思维。过程即解决问题的步骤
优点:降低了写程序的复杂度,只要顺着执行的步骤,堆叠代码就可以。
缺点:只能用来解决一个问题,牵一发而动全身。
面向对象的程序设计核心是对象–上帝模式思维
优点:解决了程序的扩展性,对某个对象单独修改,会立刻反映到整个体现,如游戏中人物的参数特征和技能都很容易。
(二)类和对象
1、类:一种数据类型,本身并不占空间,用类创建实例化对象(变量),对象占内存空间。
格式:
class
类名(父类列表):
属性
行为
''' 设计类 类名:首字母大写,其他遵循驼峰原则 属性:遵循驼峰原则 行为(方法/功能):遵循驼峰原则 ''' class Person(object): #定义属性 name='' age=0 height=0 weight=0 #定义方法,注意方法的参数必须以self作为第一个参数,self代表类的实例,代表某个对象
#object:所有类的父类。基类,超类。
def run(self): print('跑步') def eat(self,food): print('吃:%s'%food)
2、对象:万物皆对象,本质是类。
实例化对象:对象名 = 类名(参数列表) 没有参数()不能省略
1 class Person(object): #创建一个person类,写类的方法 2 def openDoor(self): 3 print("我已经打开了冰箱门") 4 def fileEle(self): 5 print("我已经把大象装进了冰箱") 6 def closeDoor(self): 7 print("我已经关闭了冰箱门") 8 9 per1 = Person() #实例化对象 10 #print(per1)
11 per1.openDoor() #开门 12 per1.fileEle() #装大象 13 per1.closeDoor() #关门 14 15 per2 = Person() 16 #print(per2)
运行结果:
<__main__.Person object at 0x000002B5E084B240> 我已经打开了冰箱门 我已经把大象装进了冰箱 我已经关闭了冰箱门 <__main__.Person object at 0x000002B5E084B2B0>
总结:在python中,用变量表示特征和属性,用方法表示功能和行为,因而具有相同特征和行为的一类事物就是‘类’,对象是则是这一类事物中具体的一个。
举例:人是一个抽象的事物,而你就是人的一个实例对象,人是抽象的,而你是具体的。人有千千万万个对象。每个人都有鼻子,嘴巴,眼睛,四肢等相同的特征和属性,每个人都能行走,饮食,交流等相同的行为和方法。