面向?qū)ο蟾攀稣n件_第1頁(yè)
面向?qū)ο蟾攀稣n件_第2頁(yè)
面向?qū)ο蟾攀稣n件_第3頁(yè)
面向?qū)ο蟾攀稣n件_第4頁(yè)
面向?qū)ο蟾攀稣n件_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

01-面向?qū)ο蟾攀?1-面向?qū)ο蟾攀?1-面向?qū)ο蟾攀稣n程目標(biāo)與要求學(xué)習(xí)目標(biāo)掌握用C++進(jìn)行面向?qū)ο缶幊痰乃枷肱c方法;培養(yǎng)良好的編程風(fēng)格和習(xí)慣;掌握VisualC++編程環(huán)境(IDE)的使用。教學(xué)要求平時(shí)作業(yè)和大作業(yè)不允許抄襲,否則記成0分;考勤和作業(yè)記入平時(shí)成績(jī)??己司C合成績(jī)=期末成績(jī)×50%+平時(shí)成績(jī)×20%+實(shí)驗(yàn)成績(jī)×30%平時(shí)成績(jī)=考勤(遲到、早退、曠課)+態(tài)度(課堂紀(jì)律) 注:曠課一次扣4分,遲到一次扣2分(若不夠從總成績(jī)扣)實(shí)驗(yàn)成績(jī)=程序×50%+文檔×10%+答辯×40%NITSpring2007,Liuqiyu2Object-OrientedProgramming1.預(yù)測(cè)未來(lái)的最好方法,就是創(chuàng)造未來(lái)。

2.再煩,也別忘微笑;再急,也要注意語(yǔ)氣;再苦,也別忘堅(jiān)持;再累,也要愛自己。

3.再長(zhǎng)的路,一步步也能走完,再短的路,不邁開雙腳也無(wú)法到達(dá)。

4.相信別人不如相信自己,相信自己不如戰(zhàn)勝自己。

5.心簡(jiǎn)單,世界就簡(jiǎn)單,幸福才會(huì)生長(zhǎng);心自由,生活就自由,到哪都有快樂。

6.心量要大,自我要小。

7.炫耀是需要觀眾的,而炫耀恰恰讓我們失去觀眾。

8.學(xué)習(xí)時(shí)的苦痛是暫時(shí)的,未學(xué)到的痛苦是終生的。

9.眼睛里沒有追求的時(shí)候,一定是心如死灰的時(shí)候。

10.要僅僅滿足于自己伸手就可以拿到的東西,踮起腳尖,你會(huì)發(fā)現(xiàn),自己的天空有多寬廣。

11.要克服生活的焦慮和沮喪,得先學(xué)會(huì)做自己的主人。

12.一個(gè)成功的人是以幽默感對(duì)付挫折的。

13.一個(gè)人成功要懂得放棄和選擇的智慧。

14.一千個(gè)人就有一千種生存方式和生活道路,要想改變一些事情,首先得把自己給找回來(lái)。

15.一時(shí)的挫折往往可以通過(guò)不屈的搏擊,變成學(xué)問(wèn)及見識(shí)。

16.以鍛煉為本,學(xué)會(huì)健康;以修進(jìn)為本,學(xué)會(huì)求知。以道德為本,學(xué)會(huì)做人;以適應(yīng)為本,學(xué)會(huì)生存。

17.毅力可以征服任何一座高峰。

18.勇敢地面對(duì)現(xiàn)實(shí),逃避解決不了任何問(wèn)題。

19.把人生一分為二,前半生不猶豫,后半生不后悔。

20.保持樂觀積極地情緒,逆著陽(yáng)光,一路向前!

21.比別人多一點(diǎn)志氣,你就會(huì)多一份出息。

22.不管別人的嘲笑,我要走自己想走的路。

23.這世界不單單是靠聰明伶俐支撐起來(lái)的,還有天道酬勤。

24.正如惡劣的品質(zhì)可以在幸運(yùn)中暴露一樣,最美好的品質(zhì)也是在厄運(yùn)中被顯示的?!喔?/p>

25.考驗(yàn)人的才能不在于他是否拿到一副好牌,而在他能打好一副壞牌。

26.靠山山會(huì)倒,靠人人會(huì)跑,只有自己最可靠。

27.了解過(guò)去,活在當(dāng)下,為將來(lái)做好準(zhǔn)備!

28.有些人因?yàn)樨澙罚氲酶嗟臇|西,卻把現(xiàn)在所有的也失掉了?!了?/p>

29.有志者,事竟成。

30.愚昧者怨天尤人,無(wú)能者長(zhǎng)吁短嘆,儒弱者頹然放棄。

31.與其相信依靠別人,不如相信依靠自己。

32.昨天已逝,明日是謎,面對(duì)今朝,盡力而為!

33.留一片空白,隨時(shí)濃墨重彩。

34.流過(guò)淚的眼睛更明亮,滴過(guò)血的心靈更堅(jiān)強(qiáng)!

35.漫漫長(zhǎng)路,荊棘叢生,待我用雙手踏平。

36.沒有口水與汗水,就沒有成功的淚水。

37.沒有實(shí)力的憤怒毫無(wú)意義。

38.沒有所謂幸運(yùn)或厄運(yùn),每件事情有因必有果。

39.努力造就實(shí)力,態(tài)度決定高度。

40.瀑布對(duì)懸崖無(wú)可畏懼,所以唱出氣勢(shì)磅礴的生命之歌。

41.其實(shí)根本就沒有什么假如,每個(gè)人的人生都不可重新設(shè)計(jì)。

42.勤奮的含義是今天的熱血,而不是明天的決心,后天的保證。

43.讓珊瑚遠(yuǎn)離驚濤駭浪的侵蝕嗎?那無(wú)異是將它們的美麗葬送。

44.人的一生,想要幸福,就要有預(yù)知未來(lái)的能力。

45.人的欲望不可能都實(shí)現(xiàn),不能的事情不可太強(qiáng)求;學(xué)會(huì)控制自我,明白自己的理想、人生價(jià)值、需求生活方式,面對(duì)現(xiàn)實(shí),把握自己,珍惜人生。

46.人生的一切變化,一切魅力。一切美都是由光明和陰影構(gòu)成的?!袪査固?/p>

47.人生在世,兩種事應(yīng)該少干:用自己的嘴干擾別人的人生;靠別人的腦子思考自己的人生。

48.人生只有必然,沒有偶然。

49.人生自有其沉浮,每個(gè)人都應(yīng)該學(xué)會(huì)忍受生活中屬于自己的一份悲傷。

50.人往往拿已知的東西來(lái)判斷未知的事物;人往往拿著錯(cuò)誤的推論當(dāng)正確的結(jié)論。

51.自律可以幫助你做你不想做但又必須做的事情。

52.自以為聰明的人往往是沒有好下場(chǎng)的。世界上最聰明的人是最老實(shí)的人,因?yàn)橹挥欣蠈?shí)人才能經(jīng)得起事實(shí)和歷史的考驗(yàn)。——周恩來(lái)

53.最怕自己平庸碌碌還安慰自己平凡可貴。

54.昨天下了雨,今天刮了風(fēng),明天太陽(yáng)就出來(lái)了。

55.如果可恨的挫折使你嘗到苦果,朋友,奮起必將讓你嘗到人生的歡樂。

56.不要亂說(shuō)話。話說(shuō)出去之前你還是話的主人,話說(shuō)出去之后你就成了話的奴隸。

57.不要忘記最初那顆不倒的心。

58.不要在你的智慧中夾雜著傲慢。不要使你的謙虛心缺乏智慧。

59.不知道明天干什么的人是不幸的!

60.成功便是站起比倒下多一次。

61.成功的方法多種多樣,別不接受你看不慣的方法。

62.成功的關(guān)鍵在于相信自己有成功的能力?!闷苼?希爾

63.用放大鏡去看人生,人生則是一場(chǎng)悲?。欢猛h(yuǎn)鏡去看人生,人生則是一場(chǎng)喜劇。

64.有了夢(mèng)想,就應(yīng)該迅速有力地實(shí)施。坐在原地等待機(jī)遇,無(wú)異于盼天上掉餡餅。毫不猶豫盡快拿出行動(dòng),為夢(mèng)想的實(shí)現(xiàn)創(chuàng)造條件,才是夢(mèng)想成真的必經(jīng)之路。

65.有無(wú)目標(biāo)是成功者與平庸者的根本差別。

66.我討厭什么都不做,卻有所期待的自己!

67.無(wú)論何時(shí),都要做好獨(dú)自生活的準(zhǔn)備。

68.現(xiàn)在的努力,是為了小時(shí)候吹過(guò)的牛逼!

69.如果你覺得現(xiàn)在走的辛苦,那就證明你在走上坡路!

70.如果你足夠努力,再加上一點(diǎn)點(diǎn)運(yùn)氣,你就會(huì)成功。

71.沒有一個(gè)朋友比得上健康,沒有一個(gè)敵人比得上病魔,與其為病痛暗自流淚,不如運(yùn)動(dòng)健身為生命添彩。

72.每天晚上疲憊地坐到椅子上時(shí),才覺得真真切切地過(guò)了一天。

73.美麗屬于自信者,從容屬于有備者,奇跡屬于執(zhí)著者,成功屬于頑強(qiáng)者。

74.命運(yùn)一半掌握在上帝手中,另一半掌握在自己手中。成功就是用自己手中的一半去贏得上帝手中的另一半。

75.弱者才會(huì)訴苦,強(qiáng)者永遠(yuǎn)找方法!

76.善用內(nèi)在潛能,你就是走運(yùn)的人。

77.生活不是單行線,一條路走不通,你可以轉(zhuǎn)彎。

78.生活總會(huì)給你答案的,但不會(huì)馬上把一切都告訴你。只要你肯等一等,生活的美好,總在你不經(jīng)意的時(shí)候,盛裝蒞臨。

79.時(shí)間并不會(huì)真的幫我們解決什么問(wèn)題,它只是把原來(lái)怎么也想不通的問(wèn)題,變得不再重要了。

80.世界會(huì)向那些有目標(biāo)和遠(yuǎn)見的人讓路。

81.世上的事,只要肯用心去學(xué),沒有一件是太晚的。

82.所有成功的人都是把握先機(jī),所有失敗的人都是守株待兔。

83.天才就是無(wú)止境刻苦勤奮的能力。

84.我的青春不要留白,我敢異想就會(huì)天開。

85.我還年輕,從不服輸。

86.我們不能做到青春活得不留遺憾,但要做到在青春里活得心安。

87.我死了嗎?沒有,所以我不能活得像死了一樣!

88.不寬恕眾生,不原諒眾生,是苦了你自己。

89.不要被任何人打亂自己的腳步,因?yàn)闆]有誰(shuí)會(huì)像你一樣清楚和在乎自己的夢(mèng)想。

90.不要幻想自己成為招聘會(huì)上的寵兒,當(dāng)你明白百分之七十的初中生都可以上大學(xué)時(shí),你應(yīng)該明白人們不會(huì)去崇拜一個(gè)群體的大多數(shù)的。

91.成功的秘訣,是在養(yǎng)成迅速去做的習(xí)慣,要趁著潮水漲得最高的一剎那,不但沒有阻力,而且能幫助你迅速地成功?!?jiǎng)趥愃?/p>

92.當(dāng)你無(wú)法從一樓蹦到三樓時(shí),不要忘記走樓梯。要記住偉大的成功往往不是一蹴而就的,必須學(xué)會(huì)分解你的目標(biāo),逐步實(shí)施。

93.當(dāng)你知道迷惑時(shí),并不可憐;當(dāng)你不知道迷惑時(shí),才是最可憐的。

94.當(dāng)我們眺望遠(yuǎn)方的時(shí)候,近處的風(fēng)景便看不清了。

95.凡事要三思,但比三思更重要的是三思而行。

96.成功的人永遠(yuǎn)只有辦法,失敗的人永遠(yuǎn)只有理由。

97.成功者說(shuō):雖然這個(gè)很困難,但它是可能的;失敗者說(shuō):那是可能的,但它太困難。

98.當(dāng)你不能成就偉業(yè),請(qǐng)你把握住平凡的幸福;當(dāng)你不能讓自己輝煌燦爛,請(qǐng)保持恒久的微笑。

99.當(dāng)你的才華還撐不起你的野心時(shí),那你就應(yīng)該靜下心來(lái)學(xué)習(xí)。

100.成功和失敗最大的差別在于想法。01-面向?qū)ο蟾攀?1-面向?qū)ο蟾攀?1-面向?qū)ο蟾攀稣n程目課程目標(biāo)與要求學(xué)習(xí)目標(biāo)掌握用C++進(jìn)行面向?qū)ο缶幊痰乃枷肱c方法;培養(yǎng)良好的編程風(fēng)格和習(xí)慣;掌握VisualC++編程環(huán)境(IDE)的使用。教學(xué)要求平時(shí)作業(yè)和大作業(yè)不允許抄襲,否則記成0分;考勤和作業(yè)記入平時(shí)成績(jī)。考核綜合成績(jī)=期末成績(jī)×50%+平時(shí)成績(jī)×20%+實(shí)驗(yàn)成績(jī)×30%平時(shí)成績(jī)=考勤(遲到、早退、曠課)+態(tài)度(課堂紀(jì)律) 注:曠課一次扣4分,遲到一次扣2分(若不夠從總成績(jī)扣)實(shí)驗(yàn)成績(jī)=程序×50%+文檔×10%+答辯×40%NITSpring2007,Liuqiyu7,Liuqiyu2Object-OrientedProgramming課程目標(biāo)與要求學(xué)習(xí)目標(biāo)NITSpring2007,Li面向?qū)ο蟮漠a(chǎn)生背景軟件危機(jī)與程序設(shè)計(jì)方法兩種流行的程序設(shè)計(jì)方法面向過(guò)程的程序設(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)(Object-OrientedProgramming)NITSpring2007,Liuqiyu7,Liuqiyu3Object-OrientedProgramming面向?qū)ο蟮漠a(chǎn)生背景軟件危機(jī)與程序設(shè)計(jì)方法NITSpring面向過(guò)程的程序設(shè)計(jì)始于20世紀(jì)70年代的結(jié)構(gòu)化分析設(shè)計(jì)(StructuredAnalysisandDesign,SAD)方法。把一個(gè)系統(tǒng)看作是功能的集合,可以進(jìn)行分解。程序=數(shù)據(jù)結(jié)構(gòu)+算法軟件程序由很多模塊組成,這些模塊就是過(guò)程,C語(yǔ)言中稱為函數(shù)。在面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言 中,這樣的函數(shù)稱為方法 (Method)。intgetMax(intnum1,intnum2){if(num1>num2)returnnum1;elsereturnnum2;}NITSpring2007,Liuqiyu7,Liuqiyu4Object-OrientedProgramming面向過(guò)程的程序設(shè)計(jì)始于20世紀(jì)70年代的結(jié)構(gòu)化分析設(shè)計(jì)(St面向過(guò)程的程序設(shè)計(jì)自頂向下的設(shè)計(jì)方法 把解決的問(wèn)題同一個(gè)過(guò)程關(guān)聯(lián),自頂向下功能分解,直到子問(wèn)題足夠簡(jiǎn)單,可以在相應(yīng)的子過(guò)程中解決。結(jié)構(gòu)化程序設(shè)計(jì)的結(jié)果是一個(gè)程序最終由若干過(guò)程組成,每一過(guò)程完成一個(gè)明確的功能。MainProblemBuildAPartBuildBPart…BuildFPartmain()

BuildA(…)BuildB(…)…BuildF(…)問(wèn)題過(guò)程N(yùn)ITSpring2007,Liuqiyu7,Liuqiyu5Object-OrientedProgramming面向過(guò)程的程序設(shè)計(jì)自頂向下的設(shè)計(jì)方法MainProblem面向過(guò)程的程序設(shè)計(jì)存在的缺陷:數(shù)據(jù)與過(guò)程分離靠直覺和順序化,難以把復(fù)雜事物表達(dá)清楚;系統(tǒng)測(cè)試、調(diào)試和升級(jí)維護(hù)困難。后果

數(shù)據(jù)結(jié)構(gòu)變化→處理該數(shù)據(jù)的算法修改(重寫) 過(guò)程的修改→子過(guò)程修改→波及到分解層

……

最痛苦的事情不是開始的編程,而是在以后修改它。NITSpring2007,Liuqiyu7,Liuqiyu6Object-OrientedProgramming面向過(guò)程的程序設(shè)計(jì)存在的缺陷:數(shù)據(jù)與過(guò)程分離NITSpri面向?qū)ο蟮某绦蛟O(shè)計(jì)(OOP)發(fā)源于20世紀(jì)60年代,Simula語(yǔ)言中引入了類(Class)的概念;真正的面向?qū)ο蟪绦蛟O(shè)計(jì)是Smalltalk語(yǔ)言奠定基礎(chǔ)的,“面向?qū)ο蟆币辉~也是Smalltalk首先采用的;C++的問(wèn)世促進(jìn)面向?qū)ο蠹夹g(shù)的發(fā)展,也使之成為標(biāo)準(zhǔn)化的面向?qū)ο蟪绦蛟O(shè)計(jì)(ObjectOrientedProgramming)語(yǔ)言。OOP使程序能夠比較直接地反問(wèn)題域的本來(lái)面目,軟件開發(fā)人員能夠利用人類認(rèn)識(shí)事物所采用的一般思維方法來(lái)進(jìn)行軟件開發(fā)。面向?qū)ο蟮某绦蛟O(shè)計(jì)和問(wèn)題求解力求符合人們?nèi)粘W匀坏乃季S習(xí)慣,降低分解問(wèn)題的難度和復(fù)雜性,提高整個(gè)求解過(guò)程的可控制性,可監(jiān)測(cè)性和可維護(hù)性。NITSpring2007,Liuqiyu7,Liuqiyu7Object-OrientedProgramming面向?qū)ο蟮某绦蛟O(shè)計(jì)(OOP)發(fā)源于20世紀(jì)60年代,Simu面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟪绦虻幕驹貫閷?duì)象(Object)。程序結(jié)構(gòu)一般由類的定義和類的使用兩部分組成。程序中的一切操作都是通過(guò)向?qū)ο蟀l(fā)送相應(yīng)的消息來(lái)實(shí)現(xiàn):對(duì)象接收到消息后,啟動(dòng)有關(guān)的方法完成相應(yīng)的操作。Coad和Yourdon給出了一個(gè)定義:

面向?qū)ο?對(duì)象+類+繼承+通信如果一個(gè)軟件系統(tǒng)是使用這些概念設(shè)計(jì)和實(shí)現(xiàn)的,則我們認(rèn)為這個(gè)軟件系統(tǒng)是面向?qū)ο蟮?。在面向過(guò)程軟件開發(fā)中優(yōu)先考慮的是過(guò)程抽象,在面向?qū)ο筌浖_發(fā)中優(yōu)先考慮的是實(shí)體(問(wèn)題論域的對(duì)象)。NITSpring2007,Liuqiyu7,Liuqiyu8Object-OrientedProgramming面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟪绦虻幕驹貫閷?duì)象(Object面向?qū)ο蟮某绦蛟O(shè)計(jì)優(yōu)點(diǎn)對(duì)象的封裝性徹底消除了傳統(tǒng)結(jié)構(gòu)方法中數(shù)據(jù)與操作分離所帶來(lái)的種種問(wèn)題,提高了程序的可復(fù)用性和可維護(hù)性;直觀性;可增加程序的模塊性(Modularity)可提高程序的可復(fù)用性(Reusability)增加可擴(kuò)展性(Extendibility)可改善程序的可維護(hù)性(Maintainability;可控制程序的復(fù)雜性可改進(jìn)質(zhì)量,降低成本NITSpring2007,Liuqiyu7,Liuqiyu9Object-OrientedProgramming面向?qū)ο蟮某绦蛟O(shè)計(jì)優(yōu)點(diǎn)NITSpring2007,Li面向?qū)ο蟮某绦蛟O(shè)計(jì)需要注意的地方面向?qū)ο笮枰耆淖兠總€(gè)人的思想以及開發(fā)文化;面向?qū)ο蟛粌H僅是編程;面向?qū)ο笮枰P(guān)注于需求、分析和設(shè)計(jì);開發(fā)人員必須和用戶緊密合作;面向?qū)ο蟮脑S多優(yōu)點(diǎn)要經(jīng)過(guò)較長(zhǎng)的時(shí)間才能顯示出來(lái);面向?qū)ο蠹夹g(shù)不能保證你能構(gòu)建出正確的系統(tǒng)。面向?qū)ο笳Z(yǔ)言:C++(混合型)Java(純粹的面向?qū)ο笳Z(yǔ)言)NITSpring2007,Liuqiyu7,Liuqiyu10Object-OrientedProgramming面向?qū)ο蟮某绦蛟O(shè)計(jì)需要注意的地方NITSpring200面向?qū)ο蟮幕靖拍顚?duì)象對(duì)象是問(wèn)題域中事物的抽象(對(duì)現(xiàn)實(shí)事物的邏輯描述)對(duì)象不能完全代表事物,只是對(duì)于現(xiàn)實(shí)事物的邏輯表達(dá),或者可看作是一個(gè)符號(hào)。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,對(duì)象是屬性及其操作的封裝體。對(duì)象的特性: ⑴唯一標(biāo)識(shí)名,區(qū)別其他對(duì)象; ⑵屬性(域),成員變量,靜態(tài)特征; ⑶方法(操作、服務(wù)),描述對(duì)象執(zhí)行的功能,動(dòng)態(tài)特征。對(duì)象的成員仍然可以是一個(gè)對(duì)象,對(duì)象之間通過(guò)消息傳遞進(jìn)行通信。NITSpring2007,Liuqiyu7,Liuqiyu11Object-OrientedProgramming面向?qū)ο蟮幕靖拍顚?duì)象NITSpring2007,Li面向?qū)ο蟮幕靖拍顚?duì)象現(xiàn)實(shí)生活中的對(duì)象計(jì)算機(jī)中的對(duì)象的原型classCar{

private:intcolor_number;intdoor_number;intspeed;

public:voidbrake(){…}voidspeedUp(){…};voidslowDown(){…}}NITSpring2007,Liuqiyu7,Liuqiyu12Object-OrientedProgramming面向?qū)ο蟮幕靖拍顚?duì)象現(xiàn)實(shí)生活中計(jì)算機(jī)中classCar面向?qū)ο蟮幕靖拍铑愵悾╟lass)是對(duì)對(duì)象(object)的抽象和歸納,是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對(duì)象的集合。對(duì)象是類的實(shí)例,類是創(chuàng)建對(duì)象的模板。類的成員: ⑴屬性(域):封裝在類中的變量; ⑵方法(操作):函數(shù)成員; ⑶構(gòu)造函數(shù):與類名相同,用來(lái)在創(chuàng)建對(duì)象時(shí)初始化。NITSpring2007,Liuqiyu7,Liuqiyu13Object-OrientedProgramming面向?qū)ο蟮幕靖拍铑怤ITSpring2007,Liu面向?qū)ο蟮幕靖拍铑愵惓蓡T:同類本身相關(guān);用static修飾;可用類直接調(diào)用,無(wú)須實(shí)例化。實(shí)例成員:同特定實(shí)例相關(guān);沒有static修飾;構(gòu)造函數(shù)總是實(shí)例成員。Personpp;//聲明一個(gè)對(duì)象pp.setName(“zhang”);//通過(guò)方法改變對(duì)象的屬性pp.setAge(20);cout<<“Ageis”<<pp.getAge()<<endl;cout<<“Nameis”<<pp.getName()<<endl;cout<<“Heis”<<Person.nation<<endl;NITSpring2007,Liuqiyu7,Liuqiyu14Object-OrientedProgramming面向?qū)ο蟮幕靖拍铑怭ersonpp;類的客戶大部分應(yīng)用中一個(gè)類往往是為其他類提供服務(wù)的,這些類被稱為該類的“客戶”。注意:這里的客戶不是現(xiàn)實(shí)中的關(guān)系如:客戶這個(gè)類A可以不是服務(wù)提供商這個(gè)類B的客戶,而服務(wù)提供商這個(gè)類B是客戶這個(gè)類A的客戶,原因:B這個(gè)類的方法需要客戶類A提供處理的數(shù)據(jù)。雖然類可相互服務(wù),但應(yīng)該盡最大努力避免這種情況,否則會(huì)在代碼管理與系統(tǒng)穩(wěn)定性中造成問(wèn)題。NITSpring2007,Liuqiyu7,Liuqiyu15Object-OrientedProgramming類的客戶大部分應(yīng)用中一個(gè)類往往是為其他類提供服務(wù)的,這些類被面向?qū)ο蟮幕靖拍钕⒖蛻?服務(wù)器模型:提供服務(wù)的類及實(shí)例是服務(wù)器,在接口中公布其提供的服務(wù),隱藏實(shí)現(xiàn)細(xì)節(jié),使用服務(wù)的程序是客戶。消息:一個(gè)對(duì)象請(qǐng)求另一個(gè)對(duì)象服務(wù)的要求。消息內(nèi)容:接受者名、調(diào)用方法名、必要參數(shù)。stringstr=“HelloWorld”;//新建一個(gè)string對(duì)象intlen=str.length();//通過(guò)調(diào)用str的length()方法,傳遞消息str=str.substr(0,11);

//直觀的方法名if(str==“Hello”){

……}NITSpring2007,Liuqiyu7,Liuqiyu16Object-OrientedProgramming面向?qū)ο蟮幕靖拍钕tringstr=“Hello面向?qū)ο蟮幕靖拍罘庋b封裝是一種信息隱藏機(jī)制,制利用抽象數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,組成一個(gè)不可分割的獨(dú)立實(shí)體。外界要改變一個(gè)對(duì)象的狀態(tài),也就是對(duì)它所包含的數(shù)據(jù)進(jìn)行操作,只能向該對(duì)象發(fā)出請(qǐng)求消息,然后由該對(duì)象的對(duì)應(yīng)方法來(lái)改變其自身的狀態(tài)。面向?qū)ο笙到y(tǒng)的封裝單位是對(duì)象。類概念本身也具有封裝意義,因?yàn)閷?duì)象的特征由它所屬的類說(shuō)明來(lái)描述,但對(duì)象的封裝比類的封裝更具體化。封裝的結(jié)果:隱藏了復(fù)雜性,提高了易維護(hù)性,有利于代碼復(fù)用和信息隱藏。NITSpring2007,Liuqiyu7,Liuqiyu17Object-OrientedProgramming面向?qū)ο蟮幕靖拍罘庋bNITSpring2007,Li面向?qū)ο蟮幕靖拍钚畔㈦[藏(Informationhiding)如果一個(gè)類想獲取另一個(gè)類的信息,必須先征得同意,而不是直接拿來(lái)就用;意味著類模塊中除了向外界提供的接口以外,還有大量不為外界所知的用以支持這些接口實(shí)現(xiàn)的屬性和方法。NITSpring2007,Liuqiyu7,Liuqiyu18Object-OrientedProgramming面向?qū)ο蟮幕靖拍钚畔㈦[藏(Informationhidi面向?qū)ο蟮幕靖拍罾^承通過(guò)繼承機(jī)制,派生類(子類)可以繼承基類(父類)的數(shù)據(jù)和操作,實(shí)現(xiàn)代碼重用。子類可從父類繼承所有非private成員。子類中可添加特有的屬性和方法,也可重寫父類的行為和修改狀態(tài),以體現(xiàn)其個(gè)性。繼承關(guān)系是傳遞的。即如果有類C繼承B,B(間接)繼承A,則C(間接)繼承A。

一個(gè)類實(shí)際上繼承了層次結(jié)構(gòu)中在其上面的所有類的全部描述。單繼承:一個(gè)父類多繼承:多個(gè)父類NITSpring2007,Liuqiyu7,Liuqiyu19Object-OrientedProgramming面向?qū)ο蟮幕靖拍罾^承NITSpring2007,Li面向?qū)ο蟮幕靖拍罾^承C++支持多繼承,Java只支持單繼承,單Java通過(guò)接口來(lái)實(shí)現(xiàn)多繼承的功能。AB1B2B3C1C2NITSpring2007,Liuqiyu7,Liuqiyu20Object-OrientedProgramming面向?qū)ο蟮幕靖拍罾^承AB1B2B3C1C2NITSpri面向?qū)ο蟮幕靖拍疃鄳B(tài)相同的消息,產(chǎn)生不同的行為方式。同一個(gè)方法名的操作不僅僅定義一種行為,因此有比較強(qiáng)的表達(dá)能力和更多的用途。多態(tài)為描述客觀事物提供了極大的能動(dòng)性。重載(Overload)

:同一類中有多個(gè)同名的方法,但這些方法的參數(shù)表不同(個(gè)數(shù)、類型)覆蓋(Override)形式:子類中重新定義父類中具有相同署名(名字、參數(shù))的方法。例…NITSpring2007,Liuqiyu7,Liuqiyu21Object-OrientedProgramming面向?qū)ο蟮幕靖拍疃鄳B(tài)NITSpring2007,Li面向?qū)ο蟮幕靖拍畈煌藢?duì)play()請(qǐng)求的響應(yīng)NITSpring2007,Liuqiyu7,Liuqiyu22Object-OrientedProgramming面向?qū)ο蟮幕靖拍畈煌藢?duì)play()請(qǐng)求的響應(yīng)NIT面向?qū)ο蟮幕靖拍疃鄳B(tài)classAlpha{

public:

intprint(Strings){……}

int

print(charc){……}}重載classAlpha{

public:

int

print(Strings){……}}classBeta:publicAlpha{

public:

int

print(Strings){

……//實(shí)現(xiàn)的具體內(nèi)容可能不一樣}}覆蓋NITSpring2007,Liuqiyu7,Liuqiyu23Object-OrientedProgramming面向?qū)ο蟮幕靖拍疃鄳B(tài)classAlpha{重載clas面向?qū)ο蟮能浖こ堂嫦驅(qū)ο蟮能浖こ淌敲嫦驅(qū)ο蠓椒ㄔ谲浖こ填I(lǐng)域的全面應(yīng)用。它包括:面向?qū)ο蟮姆治觯∣OA)面向?qū)ο蟮脑O(shè)計(jì)(OOD)面向?qū)ο蟮木幊蹋∣OP)面向?qū)ο蟮臏y(cè)試(OOT)面向?qū)ο蟮能浖S護(hù)(OOSM)NITSpring2007,Liuqiyu7,Liuqiyu24Object-OrientedProgramming面向?qū)ο蟮能浖こ堂嫦驅(qū)ο蟮能浖こ淌敲嫦驅(qū)ο蠓椒ㄔ谲浖こ堂嫦驅(qū)ο蟮能浖こ滔到y(tǒng)分析系統(tǒng)分析階段應(yīng)該扼要精確地抽象出系統(tǒng)必須做什么,但是不關(guān)心如何去實(shí)現(xiàn)。面向?qū)ο蟮南到y(tǒng)分析,直接用問(wèn)題域中客觀存在的事物建立模型中的對(duì)象,對(duì)單個(gè)事物及事物之間的關(guān)系,都保留他們的原貌,不做轉(zhuǎn)換,也不打破原有界限而重新組合,因此能夠很好地映射客觀事物。設(shè)計(jì)針對(duì)系統(tǒng)的一個(gè)具體實(shí)現(xiàn)運(yùn)用面向?qū)ο蟮姆椒?。其中包括兩方面的工作:把OOA模型直接搬到OOD,作為OOD的一部分針對(duì)具體實(shí)現(xiàn)中的人機(jī)界面、數(shù)據(jù)存儲(chǔ)、任務(wù)管理等因素補(bǔ)充一些與實(shí)現(xiàn)有關(guān)的部分。NITSpring2007,Liuqiyu7,Liuqiyu25Object-OrientedProgramming面向?qū)ο蟮能浖こ滔到y(tǒng)分析NITSpring2007,面向?qū)ο蟮能浖こ叹幊蘋OP工作就是用一種面向?qū)ο蟮木幊陶Z(yǔ)言把OOD模型中的每個(gè)成分書寫出來(lái),是面向?qū)ο蟮能浖_發(fā)最終落實(shí)的重要階段。測(cè)試測(cè)試的任務(wù)是發(fā)現(xiàn)軟件中的錯(cuò)誤。在面向?qū)ο蟮能浖y(cè)試中繼續(xù)運(yùn)用面向?qū)ο蟮母拍钆c原則來(lái)組織測(cè)試,以對(duì)象的類作為基本測(cè)試單位,可以更準(zhǔn)確的發(fā)現(xiàn)程序錯(cuò)誤并提高測(cè)試效率。維護(hù)將軟件交付使用后,工作并沒有完結(jié),還要根據(jù)軟件的運(yùn)行情況和用戶的需求,不斷改進(jìn)系統(tǒng)。使用面向?qū)ο蟮姆椒ㄩ_發(fā)的軟件,其程序與問(wèn)題域是一致的,因此,在維護(hù)階段運(yùn)用面向?qū)ο蟮姆椒梢源蟠筇岣哕浖S護(hù)的效率。NITSpring2007,Liuqiyu7,Liuqiyu26Object-OrientedProgramming面向?qū)ο蟮能浖こ叹幊蘊(yùn)ITSpring2007,Li面向?qū)ο蟾攀鯟++HelloWorld面向?qū)ο蟾攀鯟++HelloWorldC++語(yǔ)言概述C++是由C發(fā)展成為的以面向?qū)ο鬄橹饕卣鞯恼Z(yǔ)言。作為C語(yǔ)言的超集,C++繼承了C的所有優(yōu)點(diǎn),又對(duì)數(shù)據(jù)類型做了擴(kuò)充,使得編譯系統(tǒng)可以檢查出更多類型錯(cuò)誤。C++支持面向?qū)ο蟪绦蛟O(shè)計(jì),通過(guò)類和對(duì)象的概念把數(shù)據(jù)和對(duì)數(shù)據(jù)的操作封裝在一起,通過(guò)派生、繼承、重載和多態(tài)性等特征實(shí)現(xiàn)了軟件重用和程序自動(dòng)生成,使得大型復(fù)雜軟件的構(gòu)造和維護(hù)變得更加有效和容易。兼容性:C++與C完全兼容,很多用C編寫的庫(kù)函數(shù)和應(yīng)用程序都可以為C++所用。但正是由于與C兼容,使得C++不是純正的面向?qū)ο蟮恼Z(yǔ)言,它既支持面向?qū)ο蟪绦蛟O(shè)計(jì),也支持面向過(guò)程設(shè)計(jì)。但我們應(yīng)當(dāng)注意用面向?qū)ο蟮乃枷脒M(jìn)行設(shè)計(jì),以發(fā)揮出C++的優(yōu)勢(shì)。NITSpring2007,Liuqiyu7

溫馨提示

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

評(píng)論

0/150

提交評(píng)論