1.面向?qū)ο蠓椒ㄊ且环N運(yùn)用對象门坷、類、封裝袍镀、繼承默蚌、多態(tài)和消息等概念來構(gòu)造、測試苇羡、重構(gòu)軟件的方法绸吸。面向?qū)ο蠓椒◤膶ο蟪霭l(fā),發(fā)展出對象设江,類锦茁,消息,繼承等概念叉存。
2.繼承是面向?qū)ο蟮姆椒ǖ囊粋€(gè)特征码俩。繼承是使用已有的類定義作為基礎(chǔ)建立新類的定義技術(shù)。已有的類可當(dāng)作基類來引用歼捏,則新類相應(yīng)地可當(dāng)作派生類來引用稿存。廣義地說,繼承是指能夠直接獲得已有的性質(zhì)和特征瞳秽,而不必重復(fù)定義它們瓣履。面向?qū)ο筌浖夹g(shù)的許多強(qiáng)有力的功能和特點(diǎn),都來源于把類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng):一個(gè)類的上層可以有父類练俐,下層可以有子類袖迎。這種層次結(jié)構(gòu)系統(tǒng)的一個(gè)重要性質(zhì)就是繼承性,一個(gè)類直接繼承其父類的描述(數(shù)據(jù)和操作)或特性痰洒,子類自動(dòng)地共享基類中定義的數(shù)據(jù)和方法瓢棒。
3.要形成良好的程序設(shè)計(jì)風(fēng)格,主要應(yīng)注重和考慮下述一些因素:符號(hào)名的命名應(yīng)具有一定的實(shí)際含義丘喻,以便于對程序功能的理解脯宿;正確的注釋能夠幫助讀者理解程序;程序編寫應(yīng)優(yōu)先考慮清晰性泉粉,除非對效率有特殊要求连霉,程序編寫要做到清晰第一榴芳,效率第二。
4.類是具有共同屬性跺撼、共同方法的對象的集合窟感,所以類是對象的抽象,它描述了屬于該對象類型的所有對象的性質(zhì)歉井,而一個(gè)對象則是其對應(yīng)類的一個(gè)實(shí)例柿祈。
5.UInt是一個(gè)無符號(hào)整數(shù)類,它描述了所有無符號(hào)整數(shù)的性質(zhì)哩至。因此任何無符號(hào)整數(shù)都是無符號(hào)整數(shù)類的對象躏嚎,而一個(gè)具體的無符號(hào)整數(shù)"369"就是類UInt的一個(gè)實(shí)例。
6.對象是由數(shù)據(jù)和容許的操作組成的封裝體菩貌,與客觀實(shí)體有直接的對應(yīng)關(guān)系卢佣。對象之間通過傳遞消息互相聯(lián)系,以模擬現(xiàn)實(shí)世界中不同事物彼此之間的聯(lián)系箭阶。面向?qū)ο蠹夹g(shù)有三個(gè)重要特性虚茶,封裝性、繼承性和多態(tài)性仇参。
7.面向?qū)ο蠓椒ㄖ凶罨镜母拍钍菍ο筻诮校幕咎攸c(diǎn)有:標(biāo)識(shí)惟一性、分類性诈乒、多態(tài)性待笑、封裝性和模塊獨(dú)立性好。
8.面向?qū)ο蠓椒▽W(xué)中的對象是由描述該對象屬性的數(shù)據(jù)以及可以對這些數(shù)據(jù)施加的所有操作封裝在一起構(gòu)成的統(tǒng)一體抓谴。
9.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的的面向過程的方法有本質(zhì)不同,它的基本原理是寞缝,使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題癌压。它強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,它鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用應(yīng)用領(lǐng)域的概念去思考荆陆。
10.算法的控制結(jié)構(gòu)給出了算法的基本框架滩届,它不僅決定了算法中各操作的執(zhí)行順序,而且也直接反映了算法的設(shè)計(jì)是否符合結(jié)構(gòu)化原則被啼。一個(gè)算法一般都可以用順序帜消、選擇、循環(huán)三種基本控制結(jié)構(gòu)組合而成浓体。
11.面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動(dòng)的泡挺,對象間的這種相互合作需要一個(gè)機(jī)制協(xié)助進(jìn)行,這樣的機(jī)制稱為消息命浴。消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息娄猫,它請求對象執(zhí)行某一處理或回答某一要求的信息贱除,它統(tǒng)一了數(shù)據(jù)流和控制流。
12.對象根據(jù)所接受的消息而做出動(dòng)作媳溺,同樣的消息被不同的對象接受時(shí)可導(dǎo)致完全不同的行動(dòng)月幌,該現(xiàn)象稱為多態(tài)性。在面向?qū)ο蟮能浖夹g(shù)中悬蔽,多態(tài)性是指子類對象可以像父類對象那樣使用扯躺,同樣的消息既可以發(fā)送給父類對象也可以發(fā)送給子類對象。
13.在軟件設(shè)計(jì)過程中蝎困,必須遵循軟件工程的基本原則:這些原則包括抽象录语、信息隱蔽、模塊化难衰、局部化钦无、確定性、一致性盖袭、完備性和可靠性失暂。
14.信息隱蔽是指在一個(gè)模塊內(nèi)包含的信息(過程或數(shù)據(jù)),對于不需要這些信息的其他模塊來說是不能訪問的鳄虱。信息隱蔽是指采用封裝技術(shù)弟塞,將程序模塊的實(shí)現(xiàn)細(xì)節(jié)隱藏起來,使模塊接口盡量簡單拙已。
15.模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能决记,并且與其他模塊的聯(lián)系最少且接口簡單。
16.衡量軟件的模塊獨(dú)立性的度量標(biāo)準(zhǔn)是耦合性和內(nèi)聚性倍踪。一個(gè)模塊的內(nèi)聚性越強(qiáng)系宫,則該模塊的模塊獨(dú)立性越強(qiáng)。而內(nèi)聚性是信息隱蔽和局部化概念的自然擴(kuò)展建车。
17.良好的程序設(shè)計(jì)風(fēng)格可以使程序結(jié)構(gòu)清晰合理扩借,使程序代碼便于維護(hù),因此缤至,程序設(shè)計(jì)風(fēng)格對保證程序的質(zhì)量很重要潮罪。主要應(yīng)注意和考慮下述一些因素:
(1)源程序要文檔化;
(2)數(shù)據(jù)說明的次序要規(guī)范化领斥;
(3)語句的結(jié)構(gòu)應(yīng)該簡單直接嫉到,不應(yīng)該為提高效率而把語句復(fù)雜化,避免濫用goto語句月洛。模塊設(shè)計(jì)要保證低耦合何恶、高內(nèi)聚。
18.濫用goto語句將使程序流程無規(guī)律嚼黔,可讀性差导而;添加的注解行有利于對程序的理解忱叭,不應(yīng)減少或取消;程序的長短要依照實(shí)際需要而定今艺,并不是越短越好韵丑。
19.結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下,逐步求精虚缎,模塊化撵彻,限制使用goto語句。
(1)自頂向下:程序設(shè)計(jì)時(shí)應(yīng)先考慮總體实牡,后考慮細(xì)節(jié)陌僵;先考慮全局目標(biāo),后考慮局部目標(biāo)创坞。不要一開始就過多追求眾多的細(xì)節(jié)碗短,先從最上層總目標(biāo)開始設(shè)計(jì),逐步使問題具體化题涨。
(2)逐步求精:對復(fù)雜的問題偎谁,應(yīng)設(shè)計(jì)一些子目標(biāo)作過渡,逐步細(xì)化纲堵。
(3)模塊化:一個(gè)復(fù)雜問題巡雨,肯定是由若干稍簡單的問題構(gòu)成。模塊化是把程序要解決的總目標(biāo)分解為分目標(biāo)席函,再進(jìn)一步分解為具體的小目標(biāo)铐望,把每個(gè)小目標(biāo)稱為一個(gè)模塊。
(4)限制使用goto語句茂附。
20.結(jié)構(gòu)化程序設(shè)計(jì)的三種基本控制結(jié)構(gòu)是:順序結(jié)構(gòu)正蛙、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)营曼。
21.字符常量是單引號(hào)括起來的一個(gè)字符跟畅,例如'a',也可以通過轉(zhuǎn)義序列表示方法表示一些不可顯示字符或無法通過鍵盤輸入的字符溶推,例如'\n'的含義是換行。