前言
續上一個介紹關於程式中常有的基本概念,通常在程式專案中都會用到物件導向的概念,因為方便管理、也讓程式架構更明確。而在最近閱讀'學習如何學習'時,我發現在看完資料後,考自己一些小問題可以更幫助記憶,決定加上這部分!寫程式概念真的是很花時間的一份功課阿,碰到不知道該如何解釋的要再搜尋一些資料,不過感覺基礎打得更好。
正文來囉
物件導向主要有以下幾個基礎:
類別class、物件object、屬性attribute、建構式constructor、方法method
物件導向是程式設計的一種方法,因此這邊利用設計師的角度來理解這些基礎觀念!下兩張圖為基本的程式碼與將程式碼轉換為幫助記憶的圖。
類別(class)定義一件事物的抽象特點。我說類別(class)是設計師的藍圖,在這使用夾娃娃機舉例,想像自己是一個設計夾娃娃機的人,很酷吧!就像機器生產前設計師會先有設計藍圖,並訂出規格與使用方法,我們會在類別(class)中定義屬性(attribute)與方法(method)。
通常類別名稱的命名方法,習慣讓每個單字為大寫,且不使用空白與底線分隔單字,Ex:MyMachine。
物件(object)是類別(class)的實例。我說物件(object)是設計師依照藍圖做出來的產品,而當我投幣到第一台不可能是第二台可以玩遊戲吧,這說明當我們宣告物件時,他們彼此都是獨立的。
屬性(attribute)負責存放物件 (object)的資料。就像每個產品都有他的特性。在宣告物件後才會設定屬性(attribute)(如下圖),就像你生產產品後貼上的標籤,註明該產品品牌、編號、耗電量。
我們發現上一圖屬性(attribute)需要一行一行宣告,太費力!因此我們可以在建構式(constructor)先初始化物件(object)的屬性值,也就是在藍圖先決定我們這台機器會有的屬性值,在生產時就可以一次將這些全寫在標籤上。
在建構式中有四個參數,而我們只需要填三個的原因是python會自動幫我們把物件名稱cute送入建構式中,所以不需要再填入該參數。
方法可以想像是物件(Object)的行為。也就是這個產品會有的行為,創建方法(method)和函式(function)很像,但創建方法本身就要有self這個參數喔!
使用方法,和前面一樣self是不需要填的參數python會自己處理!
圖片
複習問題
(1) 解釋類別class、物件object、屬性attribute、建構式constructor、方法method。
(2) 為甚麼要有建構式?
(3) 在物件導向的程式碼中哪一個參數python會自己處理是不需要填入的?
(4) 使著用上帝視角,當你要創建動物時,用物件導向的概念來解釋吧!
資料來源
藍圖icon <div>Icons made by <a href="https://www.freepik.com" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a></div>
機器icon <div>Icons made by <a href="https://www.freepik.com" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a></div>