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