1 面向过程与面向对象编程的比较
(1)面向过程(顺序)
打酱油机器人100元 买酱油功能1:收钱功能2:过马路,看红绿灯功能3:交钱拿零钱功能4:零钱和酱油交付典型的面向过程的程序
(2)面向对象
100元 酱油零钱 酱油
2 类和对象的理解
OOP:object oriented programming,面向对象编程。
类:比如飞机,是一个大类,而设计一个飞机,需要画一张图纸,图纸包含 几个螺旋桨、几个机翼、几个轮子、飞机多长。
对象:真实的具体某个飞机。
如:
游戏 类电子游戏 类角色扮演游戏 类英雄联盟 对象
3 飞机实例化的程序 :面向对象的形式
3.1 实例
#类的命名规则 建议使用驼峰式命名法PrintStar 小驼峰式Printstar#类名 属性 方法class Make_Plane(object): #object 默认是主类#属性(变量)color = "green"wheelNum = 3#方法(函数)def move(self): #self的作用是什么,别急我们后面会讲到(相当于c++中的this指针的作用)print("起飞了")#创建对象了myplane = Make_Plane()myplane.move()print(myplane.color)
运行结果:
这样,一个简单的类和对象的模式就被我们创建好了。当我们创建类的时候,就已经生成了一块内存空间,里面存放类的属性和方法。创建对象,就相当于指向这块内存空间。
3.2 self
在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称self,
#类的命名规则 建议使用驼峰式命名法PrintStar 小驼峰式Printstar#类名 属性 方法class Make_Plane(object):#属性(变量)color = "green"wheelNum = 3#方法(函数)def move(self):print("起飞了")def getPlaneInfo(self):print("轮胎数%d,飞机颜色%s" %(self.wheelNum,self.color)) #%d对应%(self.wheelNum,self.color)中的第一个#%s对应%(self.wheelNum,self.color)中的第二个#创建对象了myplane = Make_Plane()#myplane.move()#print(myplane.color)myplane.color = "blue"myplane.getPlaneInfo()youplane = Make_Plane()youplane.color = "red"youplane.getPlaneInfo()
运行结果:
3.3init
类有一个名为init() 的魔法方法(初始化方法,一般用于变量的初始化赋值),该方法在类实例化时会自动调用。init() 方法可以有参数,参数通过init() 传递到类的实例化操作上。
#类的命名规则 建议使用驼峰式命名法PrintStar 小驼峰式Printstar#类名 属性 方法class Make_Plane(object):#魔法方法:def __init__(self,COLOR,WHELLNUM):#属性(变量)self.color = COLORself.wheelNum = WHELLNUM#方法(函数)def move(self):print("起飞了")def getPlaneInfo(self):print("轮胎数%d,飞机颜色%s" %(self.wheelNum,self.color))#创建对象了myplane = Make_Plane("blue",4)myplane.getPlaneInfo()youplane = Make_Plane("red",10)youplane.getPlaneInfo()
运行结果: