專升本計(jì)算機(jī)-教學(xué)課件-2-計(jì)算思維(新版大綱新增內(nèi)容)_第1頁
專升本計(jì)算機(jī)-教學(xué)課件-2-計(jì)算思維(新版大綱新增內(nèi)容)_第2頁
專升本計(jì)算機(jī)-教學(xué)課件-2-計(jì)算思維(新版大綱新增內(nèi)容)_第3頁
專升本計(jì)算機(jī)-教學(xué)課件-2-計(jì)算思維(新版大綱新增內(nèi)容)_第4頁
專升本計(jì)算機(jī)-教學(xué)課件-2-計(jì)算思維(新版大綱新增內(nèi)容)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

計(jì)算思維考綱要求:(一)掌握計(jì)算思維的概念;了解計(jì)算思維在社會生活中的應(yīng)用。(二)了解計(jì)算機(jī)求解問題的基本方法;掌握利用計(jì)算思維解決簡單計(jì)算問題的方法。(三)掌握計(jì)算機(jī)算法的基本知識;了解典型問題求解策略、算法復(fù)雜度分析及對應(yīng)

用程序進(jìn)行時(shí)間優(yōu)化和空間優(yōu)化的實(shí)現(xiàn)方法與思路。(四)掌握計(jì)算機(jī)程序的基本結(jié)構(gòu)(順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu))、程序流程表

達(dá)與分析方法(程序流程圖、偽代碼等);了解面向?qū)ο蟪绦蛟O(shè)計(jì)的思想與方法。一、計(jì)算思維概述二、算法與數(shù)據(jù)結(jié)構(gòu)

三、程序設(shè)計(jì)語言

四、面向?qū)ο蟪绦蛟O(shè)計(jì)目錄一、計(jì)算思維概述1.1計(jì)算思維概念

計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì),以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動。計(jì)算思維由周以真于2006年3月首次提出。2010年,周以真教授又指出計(jì)算思維是與形式化問題及其解決方案相關(guān)的思維過程,其解決問題的表示形式應(yīng)該能有效地被信息處理代理執(zhí)行。

計(jì)算思維的本質(zhì)是抽象和自動化。就是如何利用計(jì)算機(jī)去求解問題,確定合適的抽象;自動化是最終目標(biāo),選擇合適的方法去解釋執(zhí)行該抽象,讓機(jī)器去做計(jì)算的工作。1.2計(jì)算思維在社會生活中的應(yīng)用

當(dāng)我們早晨去學(xué)校時(shí),會把當(dāng)天需要的東西放進(jìn)背包,這就是預(yù)置和緩存;

當(dāng)有人弄丟他的手套時(shí),你建議他沿走過的路尋找,這就是回溯;在超市付帳時(shí),你應(yīng)當(dāng)去排哪個隊(duì)呢?這就是多服務(wù)器系統(tǒng)的性能模型;

為什么停電時(shí)手機(jī)仍然可用?這就是失敗的無關(guān)性和設(shè)計(jì)的冗余性;1.3計(jì)算思維的基本特征

1)是概念化,而不是程序化

像計(jì)算機(jī)科學(xué)家那樣去思維意味著遠(yuǎn)不止能為計(jì)算機(jī)編程,還要求能夠在抽象的多個層次上思維。2)是根本的,不是刻板的技能。

是一種根本技能,是人為了在現(xiàn)代社會中發(fā)揮職能所必須掌握的,刻板技能意味著機(jī)械的重復(fù)3)是人的,不是計(jì)算機(jī)的思維

計(jì)算思維是人類求解問題的途徑,但決非要使人類像計(jì)算機(jī)那樣思考。比如計(jì)算思維使用海量數(shù)據(jù)來加速計(jì)算,在時(shí)間和空間、處理能力和存儲容量之間進(jìn)行權(quán)衡,人并不需要具備這樣的能力。1.3計(jì)算思維的基本特征

4)是數(shù)學(xué)和工程思維的互補(bǔ)與融合

計(jì)算機(jī)科學(xué)本質(zhì)上源自數(shù)學(xué)思維和工程思維,像其它科學(xué)一樣,其基礎(chǔ)源自數(shù)學(xué)學(xué)科,但其實(shí)現(xiàn)過程又基于工程思維,計(jì)算機(jī)系統(tǒng)的目標(biāo)是創(chuàng)造能與現(xiàn)實(shí)世界互相的系統(tǒng)。5)是思想,不是人造物

計(jì)算思維不只是我們生產(chǎn)的軟硬件以物理形式到處呈現(xiàn)并時(shí)刻觸及我們的生活,更重要的是還體現(xiàn)了人類用以接近和求解問題,管理日常生活、與他人交流互動的計(jì)算思想。1.4利用計(jì)算思維求解問題的一般方法

1、把實(shí)際的應(yīng)用問題轉(zhuǎn)化為數(shù)學(xué)問題,建立數(shù)學(xué)模型;2、設(shè)計(jì)算法;3、將算法編程實(shí)現(xiàn);4、在計(jì)算機(jī)中運(yùn)行求解

前兩步是計(jì)算思維中的抽象,后兩步是計(jì)算思維中的自動化。真題解析

二、算法與數(shù)據(jù)結(jié)構(gòu)2.1概念與特征

數(shù)據(jù)結(jié)構(gòu)+算法=程序,算法通俗講就是解決某種問題所采用的一系列的方法和步驟。

算法可以看作是由有限個步驟組成的用來解決問題的過程,其實(shí)質(zhì)反映的是解決問題的思路和步驟。2.1概念與特征

算法的特征:有窮性、確定性、可行性。

有窮性:一個算法應(yīng)包含有限個操作步驟,也就是說,解決過程必須是可終止的。

確定性:算法的每一個步驟都必須明確定義,不應(yīng)該產(chǎn)生二義性。

可行性:算法的每一個步驟都是可以在有限時(shí)間內(nèi)完成的基本操作,并能得到確定的結(jié)果。

輸入:有零個或多個輸入,執(zhí)行算法有時(shí)需要從外界取得必要的信息。

輸出:有一個或多個輸出。沒有輸出的算法是沒有意義的。2.2算法的3種基本的控制結(jié)構(gòu)1、順序結(jié)構(gòu)

是最簡單、最基本的控制結(jié)構(gòu),其操作步驟是按照設(shè)置的先后順序,一步一步的執(zhí)行。2、選擇結(jié)構(gòu)

也叫分支結(jié)構(gòu),它首先需要判斷給定條件的真假,然后選擇執(zhí)行方向和順序3、循環(huán)結(jié)構(gòu)

也叫重復(fù)結(jié)構(gòu),它在給定條件成立時(shí),需要反復(fù)重復(fù)執(zhí)行同一操作或類似操作。

2.3算法的表示方法常見的算法表示方法有:自然語言、流程圖、N-S圖、偽代碼等。1、自然語言

(1)優(yōu)點(diǎn)

通俗易懂

(2)缺點(diǎn):

容易產(chǎn)生歧義,導(dǎo)致執(zhí)行的不確定性。

當(dāng)算法循環(huán)和分支較多時(shí),很難清晰的表示出來。

自然語言表示的算法不便翻譯成計(jì)算機(jī)程序設(shè)計(jì)語言。2.3算法的表示方法2、用流程圖表示算法

流程圖是一種常用的算法描述工具,主要采用一些圖框表示各種操作,用箭頭表示算法流程,其特點(diǎn)是直觀形象,結(jié)構(gòu)清晰,易于理解。

美國標(biāo)準(zhǔn)化協(xié)會ANSI規(guī)定了一些常用的流程圖符號,已為世界各國程序工作者普遍采用。

2.3算法的表示方法2、用流程圖表示算法inti=0;i

<20?輸出i成立

不成立

i=i+1i是偶數(shù)?不成立

成立

結(jié)束開始i=0,cnt=0;i

<=100?cnt

=

cnt

+

i成立

不成立

i=i+1開始輸出cnt結(jié)束inti=0;i

<20?輸出i成立

不成立

i=i+1i是偶數(shù)?不成立

成立

結(jié)束開始i=0,cnt=0;i

<=100?cnt

=

cnt

+

i成立

不成立

i=i+1開始輸出cnt結(jié)束2.3算法的表示方法3、N-S圖表示法N-S圖也稱N-S流程圖,這種流程圖完全去掉了帶箭頭的流程線,對算法的每一步描述都用一個矩形框表示。

優(yōu)點(diǎn):

比文字描述更直觀、形象、易于理解

比傳統(tǒng)的流程圖緊湊易畫

廢除流程線,整個算法結(jié)構(gòu)是由各個基本結(jié)構(gòu)按順序組成,N-S圖的上下順序就是執(zhí)行的時(shí)順序。

2.3算法的表示方法4、偽代碼表示法

偽代碼是介于自然語言和計(jì)算機(jī)語言之間的文字和符號來描述算法的工具。1)優(yōu)點(diǎn):

書寫方便、格式緊湊,易于理解,便于向計(jì)算機(jī)程序設(shè)計(jì)語言過渡2)缺點(diǎn)

由于語言的種類繁多,偽代碼的語句不容易規(guī)范。2.3算法的表示方法4、偽代碼表示法真題解析

2.4典型問題求解策略

算法策略就是在問題空間中搜索所有可能的解決問題的方法,直到選擇一種有效的方法解決問題,策略是面向問題的,算法是面向?qū)崿F(xiàn)的。

經(jīng)典的算法策略主要包括:枚舉算法、遞推算法、遞歸算法、分治算法、貪心算法、回溯算法等。1、枚舉算法

也叫窮舉法,其思路就是對問題的所有可能的解空間逐一嘗試,直到找到最終解。針對于要解決的問題,列舉出它所有可能的情況,逐個判定哪些是符合問題所要求的約束條件,從而得到問題的解。

枚舉算法的示例:百錢買百雞

2.4典型問題求解策略2、遞推算法

遞推算法是通過已知條件,利用特定關(guān)系得出中間結(jié)論,直到得到結(jié)果的算法。

遞推算法分為順推和逆推兩種。順推就是從已知條件出發(fā),逐步推算出要解決的問題的方法。逆推從已知問題的結(jié)果出發(fā),用迭代表達(dá)式逐步推算出問題的開始的條件,是順推法的逆過程。

示例:

斐波拉契數(shù)列,設(shè)它的函數(shù)為f(n),已知f(1)=1,f(2)=1;f(n)=f(n-2)+f(n-1)(n>=3,n∈N)。則我們通過順推可以知道:f(3)=f(1)+f(2)=2,f(4)=f(2)+f(3)=3……直至我們要求的解

2.4典型問題求解策略3、遞歸算法遞歸算法是把問題轉(zhuǎn)化為規(guī)??s小了的同類問題的子問題,然后通過遞歸調(diào)用函數(shù)或過程來表示問題的解。

遞歸算法是一個程序或函數(shù)直接或間接調(diào)用自己本身。

示例:

漢諾塔問題

斐波拉契數(shù)列2.4典型問題求解策略4、分治算法

分治算法是將一個規(guī)模較大的問題,分解為若干個規(guī)模較小的子問題,這些子問題相互獨(dú)立且與原問題性質(zhì)相同,再把子問題分成更小的子問題,直到最后子問題可以簡單的直接求解,原問題的解即為子問題的解的合并。

示例:

二分搜索

2.4典型問題求解策略5、貪心算法

是指在對問題求解時(shí),總是做出在當(dāng)前看來是最好的選擇,也就是說,不從整體最優(yōu)加以考慮,僅是局部最優(yōu)解。貪心算法常常用于組合優(yōu)化問題,它的求解過程是多步判斷的過程。

示例:合并排序問題6、回溯算法

也稱試探法,是一種優(yōu)選搜索法,按選優(yōu)條件向前搜索,以達(dá)到目標(biāo)。但當(dāng)探索到某一步時(shí),發(fā)現(xiàn)原先選擇并不優(yōu)或達(dá)不到目標(biāo),就退回一步重新選擇。解決一個回溯問題,實(shí)際上就是一個決策樹或回溯樹的遍歷過程。

示例:全排列問題、N皇后問題2.5算法評價(jià)

評價(jià)算法優(yōu)劣的指標(biāo)或條件:正確性、可讀性、健壯性、復(fù)雜性1、正確性

算法應(yīng)當(dāng)能正確求解問題。正確性是評價(jià)算法的首要條件,一個正確的算法是指在合理的輸入數(shù)據(jù)下,能在有限的運(yùn)行時(shí)間內(nèi)得到正確的結(jié)果。2、可讀性

好的算法應(yīng)當(dāng)具有良好的可讀性,容易理解3、健壯性(魯棒性)

當(dāng)輸入非法數(shù)據(jù)時(shí),算法也能適當(dāng)?shù)淖龀龇磻?yīng)或進(jìn)行處理,而不會產(chǎn)生莫名其妙的輸出結(jié)果2.5算法評價(jià)4、復(fù)雜性

算法復(fù)雜性分為時(shí)間復(fù)雜度和空間復(fù)雜度,用于評價(jià)算法在運(yùn)行時(shí)間和占用空間上的程度。

通常把算法中所消耗的時(shí)間的多少稱為“算法的時(shí)間復(fù)雜度”,算法的時(shí)間效率是問題規(guī)模n的函數(shù)??捎涀鱐(n)=O(f(n)),比如,算法的執(zhí)行時(shí)間為3*n2+3n+1,則它的時(shí)間復(fù)雜度為T(n)=O(n2)

算法的時(shí)間復(fù)雜度一般有:O(1)常數(shù)級、O(logn)對數(shù)級、O(n)線性級、O(nc)多項(xiàng)式級(c為常數(shù))、O(cn)指數(shù)級(c為常數(shù))、O(n!)階乘級

2.5算法評價(jià)4、復(fù)雜性算法在運(yùn)行過程中所消耗的內(nèi)存空間的大小被稱為“算法的空間復(fù)雜度”。用S(n)表示。與算法的時(shí)間復(fù)雜度相同。

算法的空間復(fù)雜度也可表示為:S(n)=O(g(n)),表示隨著問題規(guī)模n的增大,算法運(yùn)行所需存儲量的增長率與g(n)的增長率相同。2.6數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)是從問題中抽象出來的數(shù)據(jù)之間的關(guān)系,代表信息的一種組織方式,用來反映一個數(shù)據(jù)的內(nèi)部結(jié)構(gòu)。

典型的數(shù)據(jù)結(jié)構(gòu)包括線性表、樹和圖。

線性表是最基本、最簡單也是最常用的一種數(shù)據(jù)結(jié)構(gòu)。

堆棧和隊(duì)列是兩種特殊的線性表數(shù)據(jù)結(jié)構(gòu),前者是一種后進(jìn)先出(FILO),后者是一種先進(jìn)先出(FIFO)的集合。

2.6數(shù)據(jù)結(jié)構(gòu)-堆棧2.6數(shù)據(jù)結(jié)構(gòu)-隊(duì)列

2.6數(shù)據(jù)結(jié)構(gòu)-樹

2.6數(shù)據(jù)結(jié)構(gòu)-圖

真題解析

2.7算法的時(shí)間和空間優(yōu)化算法復(fù)雜度的優(yōu)化,就是要將可行解提高到更優(yōu)解,其最終目標(biāo)是:要采用盡可能低的時(shí)間復(fù)雜度和空間復(fù)雜度,去完成一個算法的設(shè)計(jì)。1、無效操作剔除處理為了降低算法復(fù)雜度,一個首要的思路是:清理算法中的無效計(jì)算或無效存儲。即首先嘗試將代碼中的無效計(jì)算、無效存儲剔除。

比如,在一個窮舉算法中,可以嘗試縮小可用的窮舉空間,以減少無用的窮舉操作?;蛘弑M量提高變量或數(shù)據(jù)結(jié)構(gòu)的復(fù)用性,減少內(nèi)存的使用。

2.7算法的時(shí)間和空間優(yōu)化2、使用合理的算法和數(shù)據(jù)結(jié)構(gòu)對于同一問題,可用的算法或數(shù)據(jù)結(jié)構(gòu)可以有很多種,都能實(shí)現(xiàn)相同的目的,為了減少算法的時(shí)間和空間復(fù)雜性,可以選用最優(yōu)的方案。

降低空間復(fù)雜度的核心思路就是,盡可能用低復(fù)雜度的數(shù)據(jù)結(jié)構(gòu),而不用高復(fù)雜度的數(shù)據(jù)結(jié)構(gòu);盡可能復(fù)用現(xiàn)有內(nèi)存,而不是重新分配新的內(nèi)存。降低時(shí)間復(fù)雜度常用的方法有遞歸、二分法、排序算法、動態(tài)規(guī)劃等。2.7算法的時(shí)間和空間優(yōu)化3、時(shí)間換空間或空間換時(shí)間由于系統(tǒng)資源是有限的,為了在有限的資源內(nèi),達(dá)成某些特定的性能目標(biāo),還可以使用時(shí)間換空間或者空間換時(shí)間的方法。

性能優(yōu)化的關(guān)鍵在于掌握各部分組件的性能平衡點(diǎn),如果系統(tǒng)CPU資源有空閑,但是內(nèi)存使用緊張,便可以使用用時(shí)間換空間的策略,達(dá)到整體的性能改良;反之,CPU資源緊張,內(nèi)存資源有空閑,則可以使用空間換時(shí)間的策略,提升整體性能。

時(shí)間換空間通常用于嵌入式設(shè)備,或者內(nèi)存、硬盤空間不足的情況,通過使用犧牲CPU的方式,獲得原本需要更多內(nèi)存或者硬盤空間才能完成的工作。2.7算法的時(shí)間和空間優(yōu)化2、時(shí)間換空間或空間換時(shí)間與時(shí)間換空間的方法相反,空間換時(shí)間則是嘗試使用更多的內(nèi)存或者磁盤空間換取CPU資源或者網(wǎng)絡(luò)資源等,通過增加系統(tǒng)的內(nèi)存消耗,來加快程序的運(yùn)行速度。典型應(yīng)用就是緩存的使用,緩存是一塊額外的系統(tǒng)內(nèi)存區(qū),如果沒有緩存,程序依然可以正常工作,但是在一般情況下,緩存中總是保存那些來之不易的數(shù)據(jù),重新取得這些數(shù)據(jù)會花費(fèi)大量的資源和時(shí)間,而通過緩存這塊額外的內(nèi)存,避免了頻繁的資源消耗,加快了程序的運(yùn)行速度。

三、程序設(shè)計(jì)語言

程序設(shè)計(jì)語言可以分為三類:機(jī)器語言、匯編語言、高級語言。其中,機(jī)器語言和匯編語言都屬于低級語言。1、機(jī)器語言

機(jī)器語言是計(jì)算機(jī)系統(tǒng)唯一能直接識別、不需要翻譯直接供機(jī)器使用的程序設(shè)計(jì)語言。

機(jī)器語言實(shí)際上是一串二進(jìn)制指令代碼,其中的每條語句稱為指令。

機(jī)器語言的缺點(diǎn):編寫難掌握、編程繁瑣、可讀性差、容易出錯、修改和調(diào)試均不方便。依賴于具體的機(jī)器,所以通用性和移植性很差。

機(jī)器語言的優(yōu)點(diǎn):能充分發(fā)揮硬件功能的特點(diǎn),程序運(yùn)行速度非???,程序也可以編寫的非常簡潔。2、匯編語言是機(jī)器語言的“符號化”。

匯編語言和機(jī)器語言基本上一一對應(yīng)的,但在表示方法上作了改進(jìn),用一種助記符來代替操作碼,用符號來表示操作數(shù)地址(地址碼)。例如用“ADD”表示加操作,用“MOV”來表示數(shù)據(jù)傳送等。用助記符和符號地址來表示指令,容易辨認(rèn),給程序的編寫帶來了很大的方便。

匯編語言的優(yōu)點(diǎn):比機(jī)器語言直觀、容易記憶和理解,比機(jī)器語言程序易讀、易檢查、易修改。

缺點(diǎn):本質(zhì)上仍然是面向機(jī)器的語言,依賴于具體的計(jì)算機(jī)、很難在系統(tǒng)間移植,這樣的程序編寫起來仍然比較困難,程序的可讀性也比較差。

匯編語言不能直接被計(jì)算機(jī)直接識別和執(zhí)行,把匯編語言源程序翻譯成機(jī)器語言的過程稱為匯編。3、高級語言高級語言是20世紀(jì)50年代后期開始出現(xiàn)的,是一種接近于人類自然語言的習(xí)慣、便于閱讀理解、檢查和修改。

高級語言易學(xué)易用、可讀性好、表達(dá)能力強(qiáng)(接近自然語言)、通用性好(編寫的程序能在不同的計(jì)算機(jī)系統(tǒng)上運(yùn)行)。

高級語言不能被計(jì)算機(jī)直接識別和執(zhí)行。

高級語言可以分成兩類:解釋型和編譯型

解釋型語言:有一個專門的解釋程序,對源程序一邊翻譯、一邊執(zhí)行,不產(chǎn)生目標(biāo)程序,如python。

編譯型語言:需要由編譯程序先翻譯成目標(biāo)程序以后才可以執(zhí)行,會產(chǎn)生目標(biāo)程序。如C語言、C++、Basic、Visualbasic、C#、java、Jbuilder、delphi。四、面向?qū)ο螅∣bjectOriented)程序設(shè)計(jì)1、概述目前程序設(shè)計(jì)方法主要有兩種:結(jié)構(gòu)化程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì)。

在結(jié)構(gòu)化程序設(shè)計(jì)中,任何程序段的編寫都基于3種結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。程序具有明顯的模塊化特征,每個程序模塊具有唯一的出口和入口語句。面向?qū)ο蟪绦蛟O(shè)計(jì)方法是盡可能模擬人類的思維方式,使得軟件的開發(fā)方法與過程盡可能接近人類認(rèn)識世界、解決現(xiàn)實(shí)問題的方法和過程,也即使得描述問題的問題空間與問題的解決方案空間在結(jié)構(gòu)上盡可能一致,把客觀世界中的實(shí)體抽象為問題域中的對象。

1、概述面向?qū)ο蟪绦蛟O(shè)計(jì)可以看作一種在程序中包含各種獨(dú)立而又互相調(diào)用的對象的思想,這與傳統(tǒng)的思想剛好相反:傳統(tǒng)的程序設(shè)計(jì)主張將程序看作一系列函數(shù)的集合,以功能模塊為中心,采用模塊化自頂向下,逐步求精的設(shè)計(jì)過程。

面向?qū)ο蟪绦蛟O(shè)計(jì)把構(gòu)成問題的事務(wù)抽象分解成各個對象,每一個對象都能夠接受數(shù)據(jù)、處理數(shù)據(jù)并將數(shù)據(jù)傳達(dá)給其它對象,或者調(diào)用其它對象的方法。

面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn):1)與人類習(xí)慣的思維方法一致;2)穩(wěn)定性好;3)可重用性好;4)易于開發(fā)大型軟件產(chǎn)品;

2、面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想

1)客觀事物是由對象組成的,對象是在原事物基礎(chǔ)上抽象的結(jié)果。2)對象是由屬性和操作組成的,其屬性反映了對象的數(shù)據(jù)信息特征,而操作則用來定義改變對象屬性狀態(tài)的各種操作方式。3)對象之間的聯(lián)系通過消息傳遞機(jī)制來實(shí)現(xiàn)。4)對象可以按其屬性來歸類。5)對象具有封裝、繼承、多態(tài)的特性,可達(dá)到軟件復(fù)用的目的。

面向?qū)ο蟮娜ㄋ模┐筇匦裕海ǔ橄螅?、封裝、繼承、多態(tài)

把大象裝進(jìn)冰箱-結(jié)構(gòu)化程序設(shè)計(jì)方法塞大象()開始結(jié)束打開冰箱門()關(guān)閉冰箱門()把大象裝進(jìn)冰箱-結(jié)構(gòu)化程序設(shè)計(jì)方法雙開門冰箱?雙手開門單手開門開始結(jié)束大象愿意進(jìn)?裝大象揍大象()開始結(jié)束雙開門冰箱?雙手關(guān)門單手關(guān)門開始結(jié)束開冰箱門()關(guān)冰箱門()塞大象()是否否是否是把大象裝進(jìn)冰箱-面向?qū)ο蟪绦蛟O(shè)計(jì)方法屬性:冰箱類型方法1:開門()方法2:關(guān)門()屬性:意愿方法:挨揍(工具)方法3:裝載(物品)冰箱對象大象對象大象.意愿=愿意?冰箱.開門()開始結(jié)束冰箱.關(guān)門()大象.挨揍(皮鞭)冰箱.裝東西(大象)是否3、對象(object)

對象是面向?qū)ο蠓椒ㄖ凶罨镜母拍?,可以用來表示客觀世界中的任何實(shí)體,對象是實(shí)體的抽象??陀^世界里的任何實(shí)體都可以被看作是對象。對象可以是具體的物(人、動物),也可以指某些概念(會議、課程)。

對象是構(gòu)成系統(tǒng)的一個基本單位,任何對象都具有自己的特征和行為。所以對象由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。

屬性即對象所包含的信息(對象的特征),操作描述了對象執(zhí)行的功能(對象具有的行為),操作也稱為方法或服務(wù)。4、類(class)

類是指具有共同屬性、共同方法的對象的集合。

類是對象的抽象,對象是類的一個實(shí)例(編程角度)。

類中所包含的所有東西,稱為類的成員,類的成員包括類的屬性和方法。

下方的代碼定義了一個“狗”的類,這只狗具有毛發(fā)顏色和是否孕育兩個屬性,還有一個吠叫的方法。

5、消息(Message)

消息是一個對象的實(shí)例與另一個實(shí)例之間傳遞的信息。對象之間只能通過消息進(jìn)行通信,而不允許在對象之外直接地訪問它內(nèi)部的屬性,這是由封裝原則引起的。

消息必須直接發(fā)給特定的對象,消息中包含所請求服務(wù)的必要信息,且遵守所規(guī)定的通信規(guī)格說明。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論