面向过程(顺序)
打酱油机器人
100元 买酱油
功能1:收钱
功能2:过马路,看红绿灯
功能3:交钱拿零钱
功能4:零钱和酱油交付
典型的面向过程的程序
面向对象
100元 酱油
零钱 酱油
类和对象的理解
OOP object oriented programming
类 设计一个飞机图纸 几个螺旋桨 几个机翼 几个轮子 飞机多长
对象 真实的飞机 用来飞行
如:
游戏 类
电子游戏 类
角色扮演游戏 类
英雄联盟 对象
飞机实例化的程序 面向对象的形式
- #类的命名规则 建议使用驼峰式命名法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)
运行结果:
这样,一个简单的类和对象的模式就被我们创建好了
当我们创建类的时候,就已经生成了一块内存空间,里面存放类的属性和方法
创建对象,就相当于指向这块内存空间
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))
- #创建对象了
- myplane = Make_Plane()
- #myplane.move()
- #print(myplane.color)
- myplane.color = "blue"
- myplane.getPlaneInfo()
- youplane = Make_Plane()
- youplane.color = "red"
- youplane.getPlaneInfo()
运行结果:
__init__
类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用
__init__() 方法可以有参数,参数通过 __init__() 传递到类的实例化操作上。
- #类的命名规则 建议使用驼峰式命名法PrintStar 小驼峰式Printstar
- #类名 属性 方法
- class Make_Plane(object):
- #属性(变量)
- color = "green"
- wheelNum = 3
- #魔法方法:
- def __init__(self,COLOR,WHELLNUM):
- self.color = COLOR
- self.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()
运行结果: