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

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

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

更新時間:2020-09-22 17:07:37 來源:動力節(jié)點 瀏覽1482次

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

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

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

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

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

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

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

image.png

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

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

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

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


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

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美成人一区二区三区在线视频 | 狠狠干天天 | 国产亚洲新品一区二区 | 一区二区在线精品免费视频 | 欧美视频成人 | 亚洲综合色色图 | 久久国产一区二区三区 | 手机看片国产免费久久网 | 亚洲码和乱人伦中文一区 | 深夜福利网址 | 亚洲综合视频在线观看 | 高清国产美女一级a毛片录 高清国产美女一级毛片 | 久久国产精品一国产精品 | 久久影院朴妮唛 | 男人影院在线观看 | 国产精品九九九久久九九 | 偷偷操99 | 国内精品手机在线观看视频 | 国产图片亚洲精品一区 | 中文字幕网在线 | 香蕉视频伊人 | 老头老太做爰xxxx视频 | 草逼com | 亚洲激情综合 | 日本一本二本免费播放视频 | 国产成人一区二区三区免费观看 | 亚洲综合色在线 | 摸逼综合网 | 国产亚洲精品九九久在线观看 | 精品九九久久国内精品 | 国产午夜精品视频 | 韩国 欧美 日产 国产精品 | 亚洲欧美综合国产精品一区 | 日本一区二区三区四区公司 | 久久一级片 | 亚洲三级中文字幕 | 九九视频这里只有精品99 | japanese乱子另类| 欧美精品网 | 久久99久久99精品免观看不卡 | 日本视频一区二区三区 |