上帝和物件導向的七天

2021-08-15 06:33:32 字數 1139 閱讀 5406

上帝用7天創造了「物件導向」 |【python之父客串】出處: 魚c論壇)

第一天:

計算機的誕生使得人類使用組合語言進行程式設計,上帝說這個太複雜了,於是將編譯的秘密告訴約翰.巴克斯.於是巴克斯創造了第乙個高階程式語言fortran並且獲得圖靈獎,fortran的但是使得「人類開始使用高階語言程式設計,然後編譯成機器語言去執行」

第二天:

上帝看到進行程式設計的時候總是一大段一大段的複製貼上,搞得程式很長。上帝開始急眼了,丫的,你搞這麼長是想累死workspace??於是上帝說:我們構建函式吧,實現重複**的封裝,然後進行呼叫。但是由於傳入的引數太複雜(大型問題)上帝又矇圈了。上帝提出設計資料結構吧,將格式各樣的需要傳遞的資料也封裝一下,成為乙個整體,將資料的整體傳遞給函式。而這些資料體可以事先的定義好規則。有沒有很方便?

第三天:

上帝發現資料結構這玩意雖然好用,但是因為他是乙個外部定義的不僅僅函式可以呼叫,其餘的猿都可以進行更改啊。這怎麼行?要是我這個資料結構儲存的是銀行賬戶的資料,可以不適用存錢,取錢的函式介面就直接的改了,這不亂套了嗎。於是上帝說我們建立object吧。

object就類似於現實生活中我們每個人有自己的屬性資訊包括(姓名,家庭住址,身高。。。)以及對屬性資料操作的行為(年齡的增加,公升高的拉長,住地的改變等等)。也就是資料+操作 = =object  (而資料的屬性只能通過這個object的行為訪問)

第四天:

上帝發現原來有那麼多相似功能操作,年齡增加,公升高拉長。每個人都定義乙個,這樣太麻煩了。何不直接的設定乙個出廠設定?在這些群體裡大家都要這樣的出廠功能,於是上帝想到了類。將object的相似的操作都封裝在類裡。通過類初始化物件,然後物件就具有了出廠功能。而函式在操作的時候到底在操作那個物件那??於是有了this。傲嬌的python說我想用self ,上帝說你開心就好。

第五天:

當類創生了之後,上帝又發現那麼多的類,似乎是有聯絡的,有很多的類中封裝了同樣的函式啊。這個問題有點熟悉,和第四天很像,何不在擴充套件乙個『』基類,父類『』,作為類的出廠設定??於是分出來了具有基類出廠設定操作的繼承,以及允許子類自由發展的多型。

第六天:

上帝總結真諦「程式設計的關鍵就是要抽象」

把系統需求抽象成高層的概念,然後再概念層次中進行程式設計

第七天:

面對依舊不懂的人民,上帝說:"沒看到今天週日,不宜動腦嗎??"

上帝七天創造世界 因此上帝也是個程式設計師

上帝是萬能的嗎?答曰 不是!為什麼不是呢?請看如下的推理 上帝可以創造一塊自己舉不起來的石頭嗎?如果他可以造出來,那麼他舉不起這石頭,所以他不是萬能的。如果他不能造出來這石頭,看,他還是不是萬能的,連這樣一塊石頭他也創造不出來。上帝不光不是萬能的,而且生活的並不好,女朋友老是嫌他錢少,也不陪他逛街,...

物件導向和面向過程的區別

面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設計思路就是首先分析問題的步驟 1 開始遊...

物件導向和面向工程的區別

c 是在c語言基礎上發展的一門語言,他繼承了c語言的高效,簡潔,快速,和高移植性的傳統。c 包含c語言的內容,主要是在c語言的基礎上新增了物件導向編成 oop 的方法,c語言是面向過程的編成。c語言 面向過程 計算機語言要處理兩個概念 資料和演算法。資料是程式要使用和處理的資訊,而且演算法是程式解決...