编程(Object oriented Program
ming),简称OOP。面向对象编程是高级编程语言的共同特性,它比我们前面学习的面向过程编程有更高的灵活性、更好的代码复用性,让程序更加容易维护。
Python中类的定义和使用更方便、更简洁。鉴于C++严格的语法和动不动就撒娇报错的特点,所以广大程序员喊出了那句经典名言“人生苦短,我用Python”。
确实Python将我们从C++的逗号、分号、大括号中解放出来,能让程序员更加注重程序本身,而不是编程语言的语法。
那么什么是面向对象编程,什么是类和对象呢?
首先来想象一下,你早上出门突然从你右后方的位置跳出一个物体,该物体会发出“喵、喵、喵”的叫声。我们一般把这种东西起名叫做“猫”,这里的“猫”就是一个类。
这种叫做“猫”类的动物,有身高、体重、毛色等区别,我们把这些可以使用數值来衡量、使用文字来描述的特征称为“猫”这个类的属性。
另外“猫”类这种动物还可以做出跑、跳、爬、抓等动作,我们将这些动作称之为“猫”类的方法。
说完类,我们来说说“对象”,天下的猫虽然有这么多,但每一只都不一样。比如调戏你的那只,它叫花花,当你睡觉的时候,在你窗户外面唱情歌的那只叫乖乖。
这里我们就把属于猫类这种动物的具体的某只,称之为对象。如果把你家那只乖乖的出生用程序语言来描述,就是:创建一个猫类对象,名字属性:“乖乖”。
面向对象编程就是模仿现实世界,将现实世界的事物进行有目的的抽象,来建立一个程序模型。什么叫有目的呢?
比如猫,它除了有颜色、体重、体长等特征外还有年纪、雌雄等属性,但如果在我们程序里不需要用到这些,我们就可以忽略这些属性。
打个最常见的比方就是游戏王者荣耀,里面所有的英雄可以称之为一个类——英雄类,有名称、外观、血量等属性和回城、行走、技能等方法。这就是对现实人类的抽象,但是这种抽象是有目的的抽象,它忽略了年纪、吃饭等属性和方法,因为这些在这个程序(游戏)中用不到。