什麼是面向對象? 什麼是OOP?
希望這篇通俗、接地氣的緒論可以解決零基礎小白的一些困惑 ~
// 以下是基礎介紹,以通俗易懂的語言進行說明,對零基礎程式設計小白特别友好!大佬慎入 哈哈
1. 一些很基礎的介紹
- 面向對象,我們常用 “OOP” 來代稱,英文全稱是 “Object-oriented Programming” 。
- 至于什麼是面向對象?教材裡是這麼說的:OOP是建立模型,展現抽象思維。
如果是零基礎開始學OOP的,想必聽了會很懵(本人經曆過這種迷茫 哈哈)
不過個人感覺,這個學着學着就懂了,不需要特别強求在一開始就把它搞明白。
- 學習OOP的意義主要有三點:
- 讓我們程式的代碼更簡短(友善管理和維護)
- 讓我們的代碼更清晰(容易讀 + 了解)
- 讓我們的代碼設計更普遍(容易修改 & 适應變動)
重點我們再重複兩遍,簡短!清晰!普遍!...... 簡短!清晰!普遍!
2. “面向對象”,什麼是對象?
這裡有兩個比較重要的概念需要大緻了解:對象 & 抽象。
A. 對象
- 對象可以是有形 / 無形的。
通俗地了解,萬物皆可是 “對象” 。車可以是一個對象,小狗勾可以是一個對象,甚至風也可以是一個對象。
- 對象有靜态特征 + 動态特征。
- 靜态特征:可以用資料來描述的,例:車有4個輪胎、螞蟻有6條腿
- 動态特征:對象的形為 / 功能,例:狗會吠、容器可以收納
- 對象是屬性和服務的結合體。
例如:車有輪胎,喇叭等,而輪胎可以充氣/洩氣,喇叭可以鳴笛之類的
到這裡,大家應該對 “對象” 有了些許的概念,那我們繼續往下看:
假設現在有兩個對象,狗和貓。
狗和貓的共同點有什麼?都有4條腿,都是哺乳動物,都會發出叫聲 ......
那不同點呢?最明顯的是叫聲,狗是吠,而貓是喵。
如果抛開那些狗和貓的具體不同之處,我們可以把它們都簡單地看成一個四肢的哺乳動物。
這個 “舍棄不同,尋求共同點” 的過程,實際上就是抽象。
B. 抽象
- 抽象 = 舍棄個别特征,抽取共同特征的過程
- 抽象的過程可以簡單分成兩類
- 資料抽象:根據施加于資料的操作來定義資料類型
一個很随性的例子:
以變量 a 為例,如果說 a = 10/2,那 a 就是一個整數;如果 a = 5/3,那 a 就是一個小數
我們不提前設定好 a 的資料類型,而是根據輸入去定義 a 的類型
- 過程抽象,使用一個确定功能的操作序列
一個很接地氣的例子:
如果一個 “處理食材” 的過程是,清洗食材-->去皮-->切塊,
那這個過程可以适用于蘿蔔,也可以适用于洋芋
- 資料抽象:根據施加于資料的操作來定義資料類型
以上就是一些簡單的介紹啦!
由于小木是零基礎開始學程式設計的,是以這裡就用一個小白的視角來和大家分享學到的内容,希望可以幫到同樣是程式設計小白的友友們!
如果有什麼遺漏的或是錯誤的知識點,也歡迎各位賜教!