天天看點

對面向對象的了解(轉載原因:舉例簡單明了)

1、什麼是面向對象語言

面向對象語言(Object-Oriented Language)是一類以對象作為基本程式結構機關的程式設計語言,指用于描述的設計是以對象為核心,而對象是程式運作時刻的基本成分。

面向對象語言很多,如一直高居世界程式設計語言排行榜的Java、C#、C++、Object-C、PHP等等。

2、面向對象的了解

以下是個人對面向對象的了解:

什麼是對象? 引用我的一位大學老師的說:一切都是類、一切都是對象。

現在大部分的面向對象語言是基于類的。

2.1、對象

一切都是對象

舉例:

将一棟房子 比作一個對象 【房子:對象】。 從圖上也可以看到這是一種新類别的房子【房子:類-Class】 如圖

對面向對象的了解(轉載原因:舉例簡單明了)

這尼瑪就是對象,那對象應該包含什麼呢,相信隻要學過,面向對象的肯定都知道面向對象的三項基本特征:封裝、繼承、多态。

2.2、對象的基本特征一:封裝

封裝 将各個獨立功能設計成一個個獨立的單元,形成一個有規劃設計的整體,減小耦合,提高内聚,避免牽一發而動全身,友善對程式的修改。

還是用房子來解釋,上面已經有房子的基本類型了,大概樣子就是那個熊樣。

舉例:

房子空間很大,但是如果男男女女有十幾人住,而且就一間屋子的話,很不友善,如果吃喝拉撒一個屋,那就成難民營,更何況晚上燈一黑,立刻就亂套了,你懂得。

這樣,就要想法解決:

勞工們出動了,把房子折騰折騰給分成樓上樓下兩層,并說明了,一樓吃喝玩樂、二樓休息;

樓上樓下勞工們又分别給隔離出幾個房間,就把房子這樣改造好了,然後男男女女們過來了,大家就可以各自的房間,做愛做的事,而且不會影響到其他了。

這樣一個簡單的封裝就完成 【房子:類-class】是對 【房子兩層:部分類-partialclass】的封裝 ;【房子兩層:部分類-partialclass】是對【房間:函數/方法-function】的封裝。

對面向對象的了解(轉載原因:舉例簡單明了)

2.3、對象的基本特征二:繼承

繼承 發生在兩個對象之間,繼承對象可以肆意的使用被繼承對象的一些屬性、方法&函數等;使代碼重用,減少編碼量,間接減少維護成本。

仍然是房子。

勞工們已經給分好樓、做好房間了。這時有個人覺得房子應該有個緊急避難所。好嗎,尼瑪房子都折騰的差不多了,尼瑪告訴勞工要緊急避難所,勞工說這不好搞哇。可以這人有錢,任性,

發話了,要搞必須搞,不好搞也要搞,而且狠狠的搞。勞工們就為難了,難道再去給蓋一棟有避難所的房子?大家集思廣益最終,房子其他都還用着,再給挖個地下室。于是新房子誕生了。

一個簡單的繼承就出現了 【房子:基類-baseclass】被【新房子:擴充類-ExtensionClass】繼承。

對面向對象的了解(轉載原因:舉例簡單明了)

2.4、對象的基本特征三:多态

多态 不同的場合做出不同相應,有着不同的特點,可以說是封裝的一個實作。

房子已經成型,要對房間進行裝修了,勞工想法很簡單都按照一種樣式來,簡單友善快捷。但是住房的男男女女們有意見,這就是尼瑪客戶,各種千奇百怪的想法,有要在承重牆

上開扇窗戶的,有要在衛生間裝攝像頭的、要在廚房裡裝空調。勞工們對能實作就開始開工了,對房子的窗戶、地闆、牆、樓梯等進行裝修。這樣裝修完房子内部就豐富起來了。

如圖 “一種多态的展現”就出來了:【房子:類-class】 通過 【窗戶、地闆、牆、樓梯等:屬性-Property】展現多态

對面向對象的了解(轉載原因:舉例簡單明了)

2.5、面向對象

最後的總結,前面其實是對象的說明。現在來說一下面向對象,像開篇提到的一切都是對象。那面向對象有是怎麼回事呢難道說是面向一切,真這麼了解也不為過。

面向對象是一種對現實世界了解和抽象的方法,對做程式來說,就是讓程式人員,用一種思維更好的看待萬物,在程式設計中的本質。 OO