壹般的,單純從面向對象編程這方面來說,我們需要先理解對象的概念,以及為什麽我們要使用面向對象編程,以及跟傳統過程化編程之間的優劣。
對象(object),即將壹組數據與這組數據有關操作組裝在壹起,形成壹個實體,這個實體就是對象。
用通俗的話來講,壹個人也可以算是壹個對象,這個對象可能包含壹些屬性(attribute),例如男性女性,這個對象也會有壹些功能,例如讓壹個人去吃飯,他能去吃飯,這就是功能(function)。
我們在編程的時候,盡可能要讓代碼看起來更有可讀性,舉例當我們去寫壹款遊戲,我們要創建人類這個類(class)
//以C++為例class?Person
{
//這段代碼定義了人這個類
}
我們把人類的屬性和功能輸入進去
class?Person{
public:
String?Name?{get;?set;}
int?Age?{get;?set;}
void?Eat(Food?food){/**?吃點東西吧?**/}
privite:
int?Height?{get;?set;}
}
到這時這還只是個類。當類創建完畢以後我們可以實例化這個類
Person?p1;這個實例化出來的實體p1就是壹個對象,我們可以去單獨改變這單個對象的屬性數據或者是調用這個類的功能(或者說方法)
p1.Age?=?20;p1.Eat();
我們還可以創建另壹個人
Person?p2;p2.Age?=?22;
每壹個對象都可以有不壹樣的屬性,但是他們是屬於壹類的,就好比姚明跟郭敬明雖然身高不同但都是人類壹樣。
當理解了面向對象編程是為了解決何種問題以後,面向對象的編程將不是壹個難題,而是壹種更為豐富的編程玩法。
如果把面向對象跟面向過程比較有什麽不同呢?
面向過程註重的是每個動作
比如我們來運行壹臺電腦,那麽我們就得打開顯示器,讓後打開主機,當然前提是妳已經插上電源,所以我們就得描述兩個過程,然後我們打開電視機,只要按個按鈕,這個動作其實和按電腦的顯示器是同壹個過程,當然我們又得描述這個過程,如果我們用面向過程開發的話,我們就要把開電腦和開電視分開描述,那麽按視頻按鈕就重復了兩次
然而我們如果用面向對象思想,把按視頻按鈕提取出來,然後開主機又是壹個類,繼承與按視頻按鈕,那麽我們只要壹次的描述按視頻按鈕就可以同時用於開電腦和電視機,原因是我們提取了開視頻顯示器的本質,所以面向對象就是我們把壹件事情按壹個壹個動作來描述出來,而面向對象則是提取***有性質讓後重復利用該類