編程(Object oriented Program
ming),簡稱OOP。面向?qū)ο缶幊淌歉呒壘幊陶Z言的共同特性,它比我們前面學習的面向過程編程有更高的靈活性、更好的代碼復用性,讓程序更加容易維護。
Python中類的定義和使用更方便、更簡潔。鑒于C++嚴格的語法和動不動就撒嬌報錯的特點,所以廣大程序員喊出了那句經(jīng)典名言“人生苦短,我用Python”。
確實Python將我們從C++的逗號、分號、大括號中解放出來,能讓程序員更加注重程序本身,而不是編程語言的語法。
那么什么是面向?qū)ο缶幊?,什么是類和對象呢?/p>
首先來想象一下,你早上出門突然從你右后方的位置跳出一個物體,該物體會發(fā)出“喵、喵、喵”的叫聲。我們一般把這種東西起名叫做“貓”,這里的“貓”就是一個類。
這種叫做“貓”類的動物,有身高、體重、毛色等區(qū)別,我們把這些可以使用數(shù)值來衡量、使用文字來描述的特征稱為“貓”這個類的屬性。
另外“貓”類這種動物還可以做出跑、跳、爬、抓等動作,我們將這些動作稱之為“貓”類的方法。
說完類,我們來說說“對象”,天下的貓雖然有這么多,但每一只都不一樣。比如調(diào)戲你的那只,它叫花花,當你睡覺的時候,在你窗戶外面唱情歌的那只叫乖乖。
這里我們就把屬于貓類這種動物的具體的某只,稱之為對象。如果把你家那只乖乖的出生用程序語言來描述,就是:創(chuàng)建一個貓類對象,名字屬性:“乖乖”。
面向?qū)ο缶幊叹褪悄7卢F(xiàn)實世界,將現(xiàn)實世界的事物進行有目的的抽象,來建立一個程序模型。什么叫有目的呢?
比如貓,它除了有顏色、體重、體長等特征外還有年紀、雌雄等屬性,但如果在我們程序里不需要用到這些,我們就可以忽略這些屬性。
打個最常見的比方就是游戲王者榮耀,里面所有的英雄可以稱之為一個類——英雄類,有名稱、外觀、血量等屬性和回城、行走、技能等方法。這就是對現(xiàn)實人類的抽象,但是這種抽象是有目的的抽象,它忽略了年紀、吃飯等屬性和方法,因為這些在這個程序(游戲)中用不到。