大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Java教程
Java標識符與關鍵字
Java變量
Java數(shù)據(jù)類型
Java運算符
Java控制語句
Java方法

Java面向?qū)ο缶幊毯兔嫦蜻^程編程的區(qū)別

本章節(jié)目標:

了解面向?qū)ο螅李惡蛯ο蟮膮^(qū)別,會進行類的定義。

知識框架:

Java面向?qū)ο缶幊毯兔嫦蜻^程編程的區(qū)別

Java面向?qū)ο缶幊毯兔嫦蜻^程編程的區(qū)別

“面向過程”(Procedure Oriented)是一種以過程為中心的編程思想,簡稱OP。“面向過程”也可稱之為“面向記錄”編程思想,就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調(diào)用就可以了。所以面向過程的編程方式關注點不在“事物”上,而是做這件事分幾步,先做什么,后做什么。例如:早晨起來:起床、穿衣、洗漱、上班,只要按照這個步驟來,就能實現(xiàn)“一天”的功能,整個這個過程中關注的是一步一步怎么做,并沒有關注“人”這個事物。再例如:開門、調(diào)整座椅、系好安全帶、踩離合、啟動、掛檔、給油,只要按照這個步驟來,車就走了,顯然關注點還是在步驟上,只要實現(xiàn)每一步就行,整個過程并沒有關注“汽車”這個事物。

“面向?qū)ο?rdquo;(Object Oriented)是一種以對象為中心的編程思想,簡稱OO。隨著計算機技術的不斷提高,計算機被用于解決越來越復雜的問題。一切事物皆對象,通過面向?qū)ο蟮姆绞剑瑢F(xiàn)實世界的事物抽象成對象。通過面向?qū)ο蟮姆椒ǎ谟萌死斫獾姆绞綄碗s系統(tǒng)進行分析、設計與編程。同時,面向?qū)ο竽苡行岣呔幊痰男剩ㄟ^封裝技術,可以像搭積木的一樣快速開發(fā)出一個全新的系統(tǒng)。面向?qū)ο髮ο笞鳛槌绦虻幕締卧瑢⒊绦蚝蛿?shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴展性。

使用面向?qū)ο缶幊趟枷腴_發(fā)系統(tǒng),在現(xiàn)代開發(fā)中會將面向?qū)ο筘灤┱麄€過程,一般包括:OOA/OOD/OOP:

● OOA:面向?qū)ο蠓治觯∣bject-Oriented Analysis)

● OOD:面向?qū)ο笤O計(Object-Oriented Design)

● OOP:面向?qū)ο缶幊蹋∣bject-Oriented Programming)

面向過程和面向?qū)ο笥惺裁搓P系呢?面向過程其實是最為實際的一種思考方式,就算是面向?qū)ο蟮姆椒ㄒ彩呛忻嫦蜻^程的思想。可以說面向過程是一種基礎的方法。它考慮的是實際地實現(xiàn)。一般的面向過程是從上往下步步求精。面向?qū)ο笾饕前咽挛锝o對象化,對象包括屬性與行為。當程序規(guī)模不是很大時,面向過程的方法還會體現(xiàn)出一種優(yōu)勢。因為程序的流程很清楚,按著模塊與函數(shù)的方法可以很好的組織。但對于復雜而龐大的系統(tǒng)來說,面向過程顯得就很無力了。

為了幫助大家理解面向過程和面向?qū)ο螅覀冊賮碓O想一個場景,假如說編寫一段程序,模擬一個人抽煙的場景,采用面向過程的方式是這樣的:買煙->買打火機->找能夠抽煙的場合->點燃香煙->開抽,只要按照這個流程一步一步來,就可以實現(xiàn)抽煙場景,采用面向?qū)ο蟮姆绞疥P注點就不一樣了,我們會想這個場景都有什么事物參與,每個事物應該有什么行為,然后將這些事物組合在一起,來描述這個場景,例如:一個會抽煙的人(對象)+香煙(對象)+打火機(對象)+允許抽煙的場所(對象),將以上4個對象組合在一起,就實現(xiàn)了抽煙場景,其中采用面向?qū)ο蟮姆绞介_發(fā)具有很強的擴展力,例如:人這個對象是可以更換的,打火機也是可以更換的,香煙的品牌也是可以更換的,包括抽煙的場合也是可以更換的。如果采用面向過程方式開發(fā),一步依賴另一步,任何一步都不能變化,變化其中一步則整個軟件都會受到影響。

網(wǎng)上發(fā)現(xiàn)了一篇文章,說了一下OP與OO的不同,并且打了一個比喻,通俗易懂。有人這么形容OP和OO的不同:用面向過程的方法寫出來的程序是一份蛋炒飯,而用面向?qū)ο髮懗鰜淼某绦蚴且环萆w澆飯。所謂蓋澆飯,北京叫蓋飯,東北叫燴飯,廣東叫碟頭飯,就是在一碗白米飯上面澆上一份蓋菜,你喜歡什么菜,你就澆上什么菜。我覺得這個比喻還是比較貼切的。蛋炒飯制作的細節(jié),我不太清楚,因為我沒當過廚師,也不會做飯,但最后的一道工序肯定是把米飯和雞蛋混在一起炒勻。蓋澆飯呢,則是把米飯和蓋菜分別做好,你如果要一份紅燒肉蓋飯呢,就給你澆一份紅燒肉;如果要一份青椒土豆蓋澆飯,就給澆一份青椒土豆絲。蛋炒飯的好處就是入味均勻,吃起來香。如果恰巧你不愛吃雞蛋,只愛吃青菜的話,那么唯一的辦法就是全部倒掉,重新做一份青菜炒飯了。蓋澆飯就沒這么多麻煩,你只需要把上面的蓋菜撥掉,更換一份蓋菜就可以了。蓋澆飯的缺點是入味不均,可能沒有蛋炒飯那么香。到底是蛋炒飯好還是蓋澆飯好呢?其實這類問題都很難回答,非要比個上下高低的話,就必須設定一個場景,否則只能說是各有所長。如果大家都不是美食家,沒那么多講究,那么從飯館角度來講的話,做蓋澆飯顯然比蛋炒飯更有優(yōu)勢,他可以組合出來任意多的組合,而且不會浪費。蓋澆飯的好處就是"菜""飯"分離,從而提高了制作蓋澆飯的靈活性。飯不滿意就換飯,菜不滿意換菜。用軟件工程的專業(yè)術語就是"可維護性"比較好,"飯" 和"菜"的耦合度比較低。蛋炒飯將"蛋""飯"攪和在一起,想換"蛋""飯"中任何一種都很困難,耦合度很高,以至于"可維護性"比較差。軟件工程追求的目標之一就是可維護性,可維護性主要表現(xiàn)在3個方面:可理解性、可測試性和可修改性。面向?qū)ο蟮暮锰幹痪褪秋@著的改善了軟件系統(tǒng)的可維護性。

對于編程語言來說,基于C語言的編程是面向過程的,C++只能說一半面向過程一半面向?qū)ο螅琷ava語言就是一門完全面向?qū)ο蟮木幊陶Z言。有C++基礎的同學,學習java應該很快,因為java底層是C++語言實現(xiàn)的。當然,除了java語言之外,還有很多都是完全面向?qū)ο蟮木幊陶Z言,例如:C#、Python等。

對于面向過程和面向?qū)ο蟮睦斫猓壳半A段來說還是很難的,畢竟大家現(xiàn)在還停留在只會定義變量,寫個if語句階段,慢慢來吧,我們需要不斷的學習后面的內(nèi)容,然后再加深對面向?qū)ο蟮睦斫狻?/span>

主站蜘蛛池模板: 欧美激情精品久久久久久久 | 欧美日韩亚 | 伊人久久香蕉 | 青草娱乐极品免费视频 | 奇米第四色7777 | 99国产精品| 欧美操操操操 | 欧美激情免费看 | 欧美亚洲第一页 | 九九视频免费精品视频免费 | 久久久亚洲精品视频 | 免费视频成人国产精品网站 | 二级毛片全部 | 免费看一级黄色毛片 | 久久国产精品夜色 | 欧美日本中文 | 久久综合色播 | 国产区91 | 天天草天天干天天 | 亚洲综合视频在线观看 | 成年性午夜免费视频网站不卡 | a级做人爱免费播放 | 精品伊人 | 亚洲视频黄色 | 日韩久久精品 | 免费播放美女一级毛片 | 日本日韩欧美 | 天天做天天爱天天爽综合网 | 欧美一级在线 | 久青草免费视频手机在线观看 | 久色亚洲| 在线成人毛片 | 国产福利视频一区 | 九九热视频在线播放 | 99热久久精品国产 | 不卡中文字幕在线观看 | 国产精品91视频 | 99视频在线免费看 | 一个色亚洲 | 99精品久久 | h网站国产 |