當前位置:
首頁 > 最新 > 我所理解的面向對象

我所理解的面向對象

我所理解的面向對象

面向對象就是我們用來處理某些編程問題的一種方法,僅此而已。

提出問題

編程語言是我們與計算機溝通交流的工具,我們需要編程語言來指揮計算機來處理問題。

比如在終端列印一句話或者開發一款遊戲這都是我們需要完成的需求。

由於目前的計算機還沒有智能到可以自動實現我們的需求,所以就需要我們自行編寫代碼來實現這些需求。

面向過程

我們最先接觸編程一般都是面向過程的思維方式。

面對一個問題或者說需求,我們的腦子裡面想的都是如何解決這個問題,以及解決這個問題需要哪幾個步驟。

有的問題很適合這種處理方式,我們先把問題分成幾個步驟,然後通過編寫代碼逐一實現每個步驟,最終把問題解決了。

比如:登錄網站這種問題就可以分解成簡單的幾個步驟:

第一步:輸入用戶名和密碼

第二步:判斷用戶名和密碼是否正確

第三步:返回結果

面向對象

但是有的問題並不能被簡單的被分解成幾個步驟,比如:

像王者榮耀這樣的遊戲,這就沒辦法劃分成一二三四五步。

像這種情況,我們就需要換一個思路來解決問題了。

我們不再直接面對我們要解決的問題了,我們需要先從問題中抽身出來,從更宏觀的角度來觀察。

像王者榮耀這樣的遊戲無非就是不同的英雄之間施放不同的技能。改變各自的狀態(血量、移速、攻速、位置等等)。

能想到這一步,問題就很好解決了。

首先,技能是誰的技能?英雄的。

其次,狀態是誰的狀態?還是英雄的。

歸根結底,我們要有英雄,然後英雄有狀態技能

那我們就用代碼實現英雄(對象),然後再實現狀態,實現技能

問題就可以解決了。

對象就像是屬性(狀態)與行為(技能)的結合體。是數據改變數據的方法的結合體。

這裡需要補充一下:

為了更高效的實現各種對象,我們就把對象之間的相同點提取出來,總結歸類。

然後需要某個對象的時候直接根據相應的來得到,減少了為實現某個對象而重複編寫的那一部分代碼。

總結

面向過程面向對象無非是解決問題的兩種方法。

我們的職業生涯會遇到各種各樣的問題(需求),只要我們解決問題的經驗足夠多,我們就能知道什麼是最優的解決方法。

問題的關鍵永遠都是我們找到了最優的解決方法,而不是我們使用的這個解決方法別人給它起了個什麼名字。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 紫金葫蘆python 的精彩文章:

Git及Git相關工具推薦

TAG:紫金葫蘆python |