大战熟女丰满人妻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ù)文檔推薦 >>
主站蜘蛛池模板: 成年女人免费视频播放77777 | 兽皇在线观看 | 久久成人国产精品二三区 | 国产视频a区 | 国产一区二区三区久久 | 欧美经典人人爽人人爽人人片 | 一级特黄女人生活片 | 日本一级毛片在线播放 | 久久亚洲福利 | 国产在线播放一区 | 久久厕所精品国产精品亚洲 | 色国产在线 | 天天操中文字幕 | 国产成人a在一区线观看高清 | 久青草中文字幕精品视频 | 妖精视频免费在线观看 | 精品久久天干天天天按摩 | 成人欧美一区二区三区黑人 | 香蕉视频网站在线观看 | 国产a做爰全过程片 | 四虎b7s22c0m| 国产a级一级久久毛片 | 996re免费热在线视频手机 | 狠狠干夜夜骑 | 新26uuu在线亚洲欧美 | 国产99久9在线 | 日韩精品a| 99视频有精品 | 涩久久| 国产a毛片高清视 | 亚洲欧美精品一中文字幕 | 天码毛片一区二区三区入口 | 国产精品成人观看视频国产 | 深夜免费在线视频 | 91亚洲国产成人久久精品网址 | 国产福利在线视频 | 久在线观看 | 天天天干干干 | 99在线热视频 | 深夜免费在线观看 | 私人影院在线免费观看 |