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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 面向?qū)ο蟪绦蛟O(shè)計(jì)概述

面向?qū)ο蟪绦蛟O(shè)計(jì)概述

更新時(shí)間:2020-09-22 17:07:37 來源:動力節(jié)點(diǎn) 瀏覽1385次

說到j(luò)ava語言,相信很多人想起來的第一個(gè)特性就是面向?qū)ο筇卣?/span>,對于java零基礎(chǔ)的小白們來說,開始學(xué)習(xí)的第一課也是面向?qū)ο螅裉靵碛懻撘幌?strong>面向?qū)ο蟪绦蛟O(shè)計(jì)這一思想該怎樣理解,以及在java編程中起到了什么樣的作用。

面向?qū)ο蟪绦蛟O(shè)計(jì)是當(dāng)今主流的程序設(shè)計(jì)范型,英文簡稱是OOP,它已經(jīng)取代了70年代早期的“結(jié)構(gòu)化”過程化程序設(shè)計(jì)開發(fā)技術(shù),java是完全面向?qū)ο蟮模^對不能使用人們熟悉的過程式風(fēng)格設(shè)計(jì)java程序。

下面讓我們從一個(gè)看似與程序設(shè)計(jì)無關(guān)的例子開始,這個(gè)例子是這樣說的:為什么Compaq、Dell、Gateway以及其他一些主流的PC機(jī)制造商能夠這樣快地發(fā)展壯大?很多人可能會說:他們能夠生產(chǎn)具有良好性能的計(jì)算機(jī),并以低廉的價(jià)格銷售,從而滿足了人們對計(jì)算機(jī)需要的迅猛增長,順應(yīng)了時(shí)代的需求。然而,讓我們進(jìn)一步地思考一下,他們?yōu)槭裁茨軌蛑圃斐鲞@么多種型號的計(jì)算機(jī),并以如此快的速度對需求變化做出響應(yīng)?

其中主要原因是這些公司將大量的工作交給了他人。他們從信譽(yù)較好的廠商那里購買組件,然后將它們組裝起來。這樣一來,往往不需要在設(shè)計(jì)與制作電源、磁盤驅(qū)動器、板以及其他組件上花費(fèi)過多的時(shí)間和資金。與自行研制相比,這樣能夠以更快的速度、更少的資金生產(chǎn)產(chǎn)品,并快速地適應(yīng)需求變化。

個(gè)人計(jì)算機(jī)制造商所購買的就是“預(yù)包裝功能”(prepackaged functionality)。例如,當(dāng)購買一個(gè)電源的時(shí)候,實(shí)際上購買的是具有一些屬性(大小、形狀等等)和功能(穩(wěn)壓輸出、實(shí)際功率等)的東西。Compaq公司就是一個(gè)應(yīng)用這種高效生產(chǎn)過程的典范。當(dāng)他們從自行研制大部分零部件轉(zhuǎn)向主要依靠購買部件時(shí),其盈利獲得了大幅度地提升。

面向?qū)ο蟪绦蛟O(shè)計(jì)也是基于同樣的想法,它認(rèn)為程序是由對象組成的,這些對象有自己的屬性和能夠執(zhí)行的操作。是自己構(gòu)造對象還是從外界購買對象完全取決于預(yù)算或時(shí)間。但是,從根本上說,只要對象能夠滿足要求,就不必關(guān)心其功能的具體實(shí)現(xiàn)過程。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,只需要關(guān)注對象的外表,就如同計(jì)算機(jī)制造商只關(guān)心電源是否符合要求,不必關(guān)心其內(nèi)部結(jié)構(gòu)一樣,絕大多數(shù)的java程序員不必關(guān)心對象的具體實(shí)現(xiàn),只要保證對象滿足他們的需求就可以了。

傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)通過設(shè)計(jì)一系列的過程(即算法)來求解問題。這些過程一旦被確定,下一步就要開始尋找存儲數(shù)據(jù)的方式。這就是Pascal語言的設(shè)計(jì)者Niklaus Wirth將其編著的有關(guān)程序設(shè)計(jì)的著名書籍命名為《Algorithms+Data Structure=Programs》(算法+數(shù)據(jù)結(jié)構(gòu)=程序) (Prentice Hall, 1975 )的原因。請注意,在Wirth命名的書名中,算法是第一位的,而數(shù)據(jù)結(jié)構(gòu)是第二位的。這就生動地表述了程序員當(dāng)時(shí)的工作方式。首先要確定如何操縱數(shù)據(jù);然后再決定如何組織數(shù)據(jù)的結(jié)構(gòu),以便操縱數(shù)據(jù)。OOP卻調(diào)換了這個(gè)次序,將數(shù)據(jù)放在第一位,然后再考慮操縱數(shù)據(jù)的算法。

image.png

面向?qū)ο蟪绦蛟O(shè)計(jì)的關(guān)鍵是讓每一個(gè)對象負(fù)責(zé)執(zhí)行一組相關(guān)的任務(wù)。如果一個(gè)對象依賴于另一個(gè)對象負(fù)責(zé)處理的任務(wù),那么它就去訪問那個(gè)包括該任務(wù)的對象。此時(shí),第一個(gè)對象請求第二個(gè)對象執(zhí)行任務(wù)。這種工作方式實(shí)際上是由過程化程序設(shè)計(jì)中人們所熟悉的過程調(diào)用實(shí)現(xiàn)的。(在java程序設(shè)計(jì)語言中,這些過程調(diào)用被稱為方法調(diào)用。)

特別需要說明的是,一個(gè)對象既不能直接訪問另一個(gè)對象內(nèi)部的數(shù)據(jù),也不能讓其他對象直接訪問自己內(nèi)部的數(shù)據(jù)。對象之間的所有通信都是通過方法調(diào)用完成的。通過封裝對象數(shù)據(jù),最大限度地提高可重用性,減少數(shù)據(jù)的依賴性,并將程序的調(diào)試時(shí)間降到最短。

當(dāng)然,如同過程化程序設(shè)計(jì)語言中的模塊一樣,不要讓一個(gè)對象承擔(dān)的任務(wù)過多。創(chuàng)建一個(gè)僅執(zhí)行少量任務(wù)的小型對象,會使設(shè)計(jì)和調(diào)試過程簡化;而創(chuàng)建一個(gè)內(nèi)部含有復(fù)雜數(shù)據(jù)和數(shù)百個(gè)過程的對象,會使設(shè)計(jì)與調(diào)試過程變得非常困難。

對于java的學(xué)習(xí)來說,在一開始能有整體編程思想和java基本思想的認(rèn)知的把握,對學(xué)習(xí)是十分有用的,面向?qū)ο蟪绦蛟O(shè)計(jì)對java是十分重要的。希望通過這篇文章的介紹,大家可以對面向?qū)ο蟪绦蛟O(shè)計(jì)有一定的理解,從而可以對java的學(xué)習(xí)起到一定的作用。


提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲国产成人久久一区www | 阿v天堂2017 啊用力嗯快国产在线观看 爱爱99 | 欧美伊人久久久久久久久影院 | 欧美特级毛片a够爽 | 久久爱噜噜噜噜久久久网 | 日韩免费精品一级毛片 | 久青草国产手机在线视频 | 香蕉成人网 | 殴美一级视频 | 色人阁五月天 | 久久久久国产一级毛片高清版 | 日韩欧美国产一区二区三区四区 | 国产高清福利91成人 | 亚洲视频在线视频 | 香蕉午夜视频 | 97se亚洲综合 | 亚洲精品美女久久久久99 | 怡红院成人永久免费看 | 日韩毛片网 | 亚洲综合色就色手机在线观看 | 色婷婷精品大视频在线蜜桃视频 | 色女影院 | 九九久久免费视频 | 久久久久九九精品影院 | 国产综合区 | 四虎8848| 99这里 | 久久精品亚洲99一区二区 | 国产精品亚洲一区二区在线观看 | 97久久久久 | 国产精品国产三级国产a | 国产午夜永久福利视频在线观看 | 久久免费精品视频在线观看 | 全午夜免费一级毛片 | 久久www免费人成精品香蕉 | 国产精品久久久久孕妇 | 九九精品视频在线免费观看 | 国产永久一区二区三区 | 亚洲欧美国产中文 | 狠狠色噜噜狠狠狠狠网站视频 | 中文字幕专区在线亚洲 |