版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
為什么要學習本課程面向?qū)ο笫钱斍俺绦蛟O計的重要思想VC++是Win32應用程序的主要開發(fā)工具本課程既承前(C語言)又啟后(.NET技術)為什么要學習本課程1本課程的學習目標
掌握面向?qū)ο蟪绦蛟O計的基本思想和方法掌握C++的基本語法和特性使用VC++6.0設計程序解決簡單的問題本課程的學習目標2本課程的內(nèi)容安排
課時安排:3節(jié)/周15周內(nèi)容:見教材目錄重難點:類和對象、繼承和派生多態(tài)性和虛函數(shù)實驗安排:4節(jié)/周8周本課程的內(nèi)容安排課時安排:3節(jié)/周15周3本課程的參考書面向?qū)ο蟮睦碚撆cC++實踐,王燕,清華大學出版社C++面向?qū)ο蟪绦蛟O計,譚浩強,中國鐵道出版社其他相關的紙本及電子書籍(圖書館借閱或網(wǎng)上下載)本課程的參考書4本課程的考評方法
平時作業(yè)+上課表現(xiàn):約20%
上機實驗+作品設計:約30%
期末考試:約50%本課程的考評方法5教材編者的話
你的程序設計能力與你投入到計算機上的時間成正比。要想學好程序設計,就得多讀程序,多編程序,多調(diào)試程序。教材編者的話6第一章緒論第一章緒論7主要內(nèi)容面向?qū)ο蠓椒ǖ钠鹪春桶l(fā)展結(jié)構(gòu)化程序設計與面向?qū)ο蟪绦蛟O計面向?qū)ο蟮幕靖拍罴捌湎到y(tǒng)的特性面向?qū)ο蟮南到y(tǒng)開發(fā)方法面向?qū)ο蟪绦蛟O計舉例主要內(nèi)容面向?qū)ο蠓椒ǖ钠鹪春桶l(fā)展81.1面向?qū)ο蠓椒ǖ钠鹪礄C器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加
10010000減用助記符號描述的指令系統(tǒng)如ADDA,B面向機器的語言程序設計是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設計關鍵是定義類,并由類派生對象1.1面向?qū)ο蠓椒ǖ钠鹪礄C器語言匯編語言高級語言面向過程面91.1面向?qū)ο蠓椒ǖ钠鹪?0年代末“軟件危機”軟件工程70年代結(jié)構(gòu)化程序設計80年代面向?qū)ο蟪绦蛟O計1.1面向?qū)ο蠓椒ǖ钠鹪?0年代末“軟件危機”70年代8010面向?qū)ο蟮姆椒ㄊ且詫ο笞鳛樽罨驹氐囊环N分析問題和解決問題的方法。結(jié)構(gòu)化方法處理問題是以過程為中心的,面向?qū)ο蠓椒ㄊ且詫ο鬄橹行牡?。面向?qū)ο蟮姆椒芨匀弧⒏苯拥胤从超F(xiàn)實世界的問題空間,能更好地適應復雜大系統(tǒng)不斷發(fā)展與變化的要求。1.1面向?qū)ο蠓椒ǖ钠鹪疵嫦驅(qū)ο蟮姆椒ㄊ且詫ο笞鳛樽罨驹氐囊环N分析問題和解決問題11面向?qū)ο笳Z言可以分為兩大類:純粹的面向?qū)ο笳Z言和混合型的面向?qū)ο笳Z言。純粹的面向?qū)ο笳Z言中,幾乎所有的語言成分都是“對象”,這類語言強調(diào)開發(fā)快速原型的能力?;旌闲偷拿嫦?qū)ο笳Z言,是在傳統(tǒng)的過程化語言中加入了各種面向?qū)ο蟮恼Z言機制,它所強調(diào)的是運行效率。1.2面向?qū)ο笳Z言的發(fā)展面向?qū)ο笳Z言可以分為兩大類:純粹的面向?qū)ο笳Z言和混合型的面向12LISP家族LISP是50年代開發(fā)出來的一種人工智能語言。70年代以來,在其基礎上開發(fā)了很多LISP家族的面向?qū)ο笳Z言。SimulaSimula語言是60年代開發(fā)出來的,在Simula中引入了幾個面向?qū)ο蟪绦蛟O計語言中最重要的概念和特性,即數(shù)據(jù)抽象、類和繼承性機制。SmalltalkSmalltalk起源于Simula語言,是第一個真正的面向?qū)ο蟪绦蛟O計語言,它體現(xiàn)了純粹的OOP設計思想,是最純的OOP語言。1.2面向?qū)ο笳Z言的發(fā)展LISP家族1.2面向?qū)ο笳Z言的發(fā)展13C家族70年代出現(xiàn)了C語言,并很快得到廣泛的應用。80年代,在C的基礎上進行擴充,出現(xiàn)了C++,它增加了對象機制,是一種混合型的面向?qū)ο蟪绦蛟O計語言。C++以其高效的執(zhí)行效率贏得了廣大程序設計員的青睞,使面向?qū)ο蟮某绦蛟O計語言得到重視和廣泛應用。在2000年,Microsoft在自己的.NET框架計劃中,以C語言為樣本,沿用了C++的函數(shù)庫,研發(fā)了C#語言,它是一種面向?qū)ο蟆⒚嫦蚓W(wǎng)絡、面向組件的語言。1.2面向?qū)ο笳Z言的發(fā)展C家族1.2面向?qū)ο笳Z言的發(fā)展142結(jié)構(gòu)化程序設計與面向?qū)ο蟪绦蛟O計結(jié)構(gòu)化程序設計
自頂向下、逐步細化、模塊化設計、結(jié)構(gòu)化編碼
不足之處:數(shù)據(jù)與過程分離(1)編程時需要時刻考慮數(shù)據(jù)的格式;可重用性差(2)數(shù)據(jù)和程序要始終相容;易出錯程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設計語言+語言環(huán)境2結(jié)構(gòu)化程序設計與面向?qū)ο蟪绦蛟O計結(jié)構(gòu)化程序設計不足之處:152結(jié)構(gòu)化程序設計與面向?qū)ο蟪绦蛟O計面向?qū)ο蟪绦蛟O計
代碼重用、代碼維護、代碼共享、代碼精減程序=對象1+對象2+…+對象n對象=數(shù)據(jù)結(jié)構(gòu)+算法+程序設計語言+語言環(huán)境
2結(jié)構(gòu)化程序設計與面向?qū)ο蟪绦蛟O計面向?qū)ο蟪绦蛟O計程序=對163.1面向?qū)ο蟮幕靖拍顚ο?object)是系統(tǒng)用來描述客觀事物的一個實體,它是構(gòu)成系統(tǒng)的一個基本單位。對象是由屬性和服務構(gòu)成的。屬性用來表示對象的狀態(tài),服務用來描述對象的行為操作。對象具有如下特性:具有唯一標識名具有一個狀態(tài)、具有一組服務對象的成員仍可以是對象模塊獨立性、動態(tài)連接性、易維護性3.1面向?qū)ο蟮幕靖拍顚ο?object)173.1面向?qū)ο蟮幕靖拍铑?class)類是對象的抽象及描述,是具有共同屬性和操作的多個對象的相似特性的統(tǒng)一描述體。每個類要有一個名字標識,用以表示一組對象的共同特征。類中的每個對象都是該類的實例。類提供了完整的解決特定問題的能力,它描述了數(shù)據(jù)結(jié)構(gòu)(對象屬性)、算法(服務、方法)和外部接口(消息協(xié)議)。交通工具汽車火車公共汽車小轎車快速列車特快列車動車組3.1面向?qū)ο蟮幕靖拍铑?class)交通汽車火車公共汽183.1面向?qū)ο蟮幕靖拍钕?message)消息是面向?qū)ο笙到y(tǒng)中實現(xiàn)對象間的通信和請求任務的操作,是要求某個對象執(zhí)行其中某個功能操作的規(guī)格說明。發(fā)送消息的對象稱為發(fā)送者,接受消息的對象稱為接收者。對象間的聯(lián)系只能通過消息來進行。對象在接收到消息時才被激活。消息一般有三部分:接受對象名、調(diào)用操作名、參數(shù)。消息可分為公有消息和私有消息。消息具有三個性質(zhì):(1)同一對象可接收不同形式的多個消息,產(chǎn)生不同響應;(2)相同形式的消息可以送給不同對象,所做出的響應可以截然不同;(3)消息的發(fā)送可以不考慮具體的接收者,對象可以響應消息,也可對消息不予理會。3.1面向?qū)ο蟮幕靖拍钕?message)(1)同一193.1面向?qū)ο蟮幕靖拍罘椒?method)方法就是對象所能執(zhí)行的操作。方法包括界面和方法體兩部分。界面就是消息的模式,它給出了方法的調(diào)用協(xié)議;方法體則是實現(xiàn)某種操作的一系列計算步驟,也就是一段程序。消息和方法的關系:對象根據(jù)接收到的消息,調(diào)用相應的方法;有了方法,對象才能響應相應的消息。只要方法界面保持不變,改動方法體不會影響方法的調(diào)用。在C++語言中方法是通過函數(shù)來實現(xiàn)的,稱為成員函數(shù)。3.1面向?qū)ο蟮幕靖拍罘椒?method)203.2面向?qū)ο笙到y(tǒng)的特性抽象性(abstract)面向?qū)ο蠊膭畛绦騿T以抽象的觀點看待程序,即程序是由一組對象組成的。人們認識事物的兩種方法:從特殊到一般的歸納法和從一般到特殊的演繹法。將一組對象的共同特征抽象出來,從而形成“類”的概念。對于一個具體的類,它有許多具體的個體,我們稱這些個體叫做“對象”。
3.2面向?qū)ο笙到y(tǒng)的特性抽象性(abstract)213.2面向?qū)ο笙到y(tǒng)的特性封裝性(encapsulation)所謂數(shù)據(jù)封裝就是指一組數(shù)據(jù)和與這組數(shù)據(jù)有關的操作集合組裝在一起,形成一個能動的實體即對象。封裝給數(shù)據(jù)提供了與外界聯(lián)系的標準接口,只有通過這些接口,使用規(guī)范的方式,才能訪問這些數(shù)據(jù)。數(shù)據(jù)封裝使程序員設計程序時可以專注于自己的對象,同時切斷了不同模塊間數(shù)據(jù)的非法使用,減少了出錯的可能性。3.2面向?qū)ο笙到y(tǒng)的特性封裝性(encapsulation223.2面向?qū)ο笙到y(tǒng)的特性繼承性(inheritance)是指建立新的對象類型時,能夠從已有的對象類型獲得原對象的特點和功能。繼承的作用:一方面可以減少代碼冗余,另一方面可以通過協(xié)調(diào)性來減少相互之間的接口和界面。從繼承源上劃分繼承可分為單一繼承和多重繼承。從繼承內(nèi)容上繼承可分為取代繼承、包含繼承、受限繼承、特化繼承。父類子類3.2面向?qū)ο笙到y(tǒng)的特性繼承性(inheritance)父233.2面向?qū)ο笙到y(tǒng)的特性多態(tài)性(polymorphism)是指不同的對象接收到相同的消息時產(chǎn)生多種完全不同的行為的現(xiàn)象。C++支持兩種多態(tài)性:編譯時的多態(tài)性和運行時的多態(tài)性。編譯時的多態(tài)性通過重載函數(shù)實現(xiàn),而運行時的多態(tài)性通過虛函數(shù)實現(xiàn)。3.2面向?qū)ο笙到y(tǒng)的特性多態(tài)性(polymorphism)244面向?qū)ο蟮南到y(tǒng)開發(fā)方法系統(tǒng)調(diào)查和需求分析對系統(tǒng)要實現(xiàn)的功能及用戶對系統(tǒng)開發(fā)的需求進行調(diào)查研究。面向?qū)ο蠓治?OOA)在繁雜的問題域中抽象地識別出對象及其行為、結(jié)構(gòu)、屬性、方法等。面向?qū)ο笤O計(OOD)對分析的結(jié)果作進一步的抽象、歸類、整理,最終以規(guī)范的形式描述對象和類。面向?qū)ο蟪绦蛟O計(OOP)用面向?qū)ο蟮某绦蛟O計語言將上一步整理的對象和類的描述映射為應用程序軟件。4面向?qū)ο蟮南到y(tǒng)開發(fā)方法系統(tǒng)調(diào)查和需求分析255面向?qū)ο蟪绦蛟O計舉例
【例1.1】使用面向?qū)ο蟪绦蛟O計方法,編寫一個對堆棧進行處理的程序,包括壓棧和彈棧操作。源程序:stack.cpp1234512345stack1:stack2:NULLNULL5面向?qū)ο蟪绦蛟O計舉例【例1.1】使用面向?qū)ο蟪?6編輯鏈接編譯執(zhí)行程序代碼的錄入,生成源程序*.cpp語法分析查錯,翻譯生成目標程序*.obj與其它目標程序或庫鏈接裝配,生成可執(zhí)行程序*.exeC++程序的調(diào)試與運行編輯鏈接編譯執(zhí)行程序代碼的錄入,語法分析查錯,翻譯生成目標程27C++程序的書寫格式比較自由,一般一行寫一條語句。對于短語句也可一行寫多個,中間用“;”分隔。對于長語句也可將一條語句分寫在多行上,分行原則是不能將一個單詞分開,也不要將雙撇號引用的一個字符串分開。為了程序書寫得清晰,提高程序的可讀性,一般采用縮進格式。即同一層次語句要對齊,不同層次語句要縮進若干個字符。如循環(huán)體中的語句和選擇體中的語句要縮進對齊。
花括號的書寫方法較多,常用的是每個花括號占一行,并與使用花括號的語句對齊,花括號內(nèi)的語句采用縮格書寫的方式;另有一種形式是花括號與所括內(nèi)容占一行。C++程序的書寫格式C++程序的書寫格式比較自由,一般一行寫一條語句。對于短語句28習慣用小寫字母,大小寫敏感不使用行號,無程序行概念可使用空行和空格常用鋸齒形書寫格式main(){……………….………………
…………..…………..
……………….
………………………….……………….………………..}main(){
inti,j,sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j;}}cout<<sum<<endl;}優(yōu)秀程序員的素質(zhì)之一:
使用TAB縮進
{}對齊有足夠的注釋有合適的空行1格式特點習慣用小寫字母,大小寫敏感main()main()優(yōu)秀程292結(jié)構(gòu)特點函數(shù)與主函數(shù)程序由一個或多個函數(shù)組成必須有且只能有一個主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C++程序由語句組成用“;”作為語句終止符注釋//為注釋不產(chǎn)生編譯代碼2結(jié)構(gòu)特點函數(shù)與主函數(shù)30VisualC++6.0IDEIDE——IntegratedDevelopmentEnvironment面向?qū)ο蟪绦蛟O計課件31工件區(qū)窗口(workspace)編輯窗口輸出窗口(output)編譯鏈接執(zhí)行工件區(qū)窗口(workspace)編輯窗口輸出窗口(outpu32本章結(jié)束本章結(jié)束33為什么要學習本課程面向?qū)ο笫钱斍俺绦蛟O計的重要思想VC++是Win32應用程序的主要開發(fā)工具本課程既承前(C語言)又啟后(.NET技術)為什么要學習本課程34本課程的學習目標
掌握面向?qū)ο蟪绦蛟O計的基本思想和方法掌握C++的基本語法和特性使用VC++6.0設計程序解決簡單的問題本課程的學習目標35本課程的內(nèi)容安排
課時安排:3節(jié)/周15周內(nèi)容:見教材目錄重難點:類和對象、繼承和派生多態(tài)性和虛函數(shù)實驗安排:4節(jié)/周8周本課程的內(nèi)容安排課時安排:3節(jié)/周15周36本課程的參考書面向?qū)ο蟮睦碚撆cC++實踐,王燕,清華大學出版社C++面向?qū)ο蟪绦蛟O計,譚浩強,中國鐵道出版社其他相關的紙本及電子書籍(圖書館借閱或網(wǎng)上下載)本課程的參考書37本課程的考評方法
平時作業(yè)+上課表現(xiàn):約20%
上機實驗+作品設計:約30%
期末考試:約50%本課程的考評方法38教材編者的話
你的程序設計能力與你投入到計算機上的時間成正比。要想學好程序設計,就得多讀程序,多編程序,多調(diào)試程序。教材編者的話39第一章緒論第一章緒論40主要內(nèi)容面向?qū)ο蠓椒ǖ钠鹪春桶l(fā)展結(jié)構(gòu)化程序設計與面向?qū)ο蟪绦蛟O計面向?qū)ο蟮幕靖拍罴捌湎到y(tǒng)的特性面向?qū)ο蟮南到y(tǒng)開發(fā)方法面向?qū)ο蟪绦蛟O計舉例主要內(nèi)容面向?qū)ο蠓椒ǖ钠鹪春桶l(fā)展411.1面向?qū)ο蠓椒ǖ钠鹪礄C器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加
10010000減用助記符號描述的指令系統(tǒng)如ADDA,B面向機器的語言程序設計是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設計關鍵是定義類,并由類派生對象1.1面向?qū)ο蠓椒ǖ钠鹪礄C器語言匯編語言高級語言面向過程面421.1面向?qū)ο蠓椒ǖ钠鹪?0年代末“軟件危機”軟件工程70年代結(jié)構(gòu)化程序設計80年代面向?qū)ο蟪绦蛟O計1.1面向?qū)ο蠓椒ǖ钠鹪?0年代末“軟件危機”70年代8043面向?qū)ο蟮姆椒ㄊ且詫ο笞鳛樽罨驹氐囊环N分析問題和解決問題的方法。結(jié)構(gòu)化方法處理問題是以過程為中心的,面向?qū)ο蠓椒ㄊ且詫ο鬄橹行牡摹C嫦驅(qū)ο蟮姆椒芨匀?、更直接地反映現(xiàn)實世界的問題空間,能更好地適應復雜大系統(tǒng)不斷發(fā)展與變化的要求。1.1面向?qū)ο蠓椒ǖ钠鹪疵嫦驅(qū)ο蟮姆椒ㄊ且詫ο笞鳛樽罨驹氐囊环N分析問題和解決問題44面向?qū)ο笳Z言可以分為兩大類:純粹的面向?qū)ο笳Z言和混合型的面向?qū)ο笳Z言。純粹的面向?qū)ο笳Z言中,幾乎所有的語言成分都是“對象”,這類語言強調(diào)開發(fā)快速原型的能力?;旌闲偷拿嫦?qū)ο笳Z言,是在傳統(tǒng)的過程化語言中加入了各種面向?qū)ο蟮恼Z言機制,它所強調(diào)的是運行效率。1.2面向?qū)ο笳Z言的發(fā)展面向?qū)ο笳Z言可以分為兩大類:純粹的面向?qū)ο笳Z言和混合型的面向45LISP家族LISP是50年代開發(fā)出來的一種人工智能語言。70年代以來,在其基礎上開發(fā)了很多LISP家族的面向?qū)ο笳Z言。SimulaSimula語言是60年代開發(fā)出來的,在Simula中引入了幾個面向?qū)ο蟪绦蛟O計語言中最重要的概念和特性,即數(shù)據(jù)抽象、類和繼承性機制。SmalltalkSmalltalk起源于Simula語言,是第一個真正的面向?qū)ο蟪绦蛟O計語言,它體現(xiàn)了純粹的OOP設計思想,是最純的OOP語言。1.2面向?qū)ο笳Z言的發(fā)展LISP家族1.2面向?qū)ο笳Z言的發(fā)展46C家族70年代出現(xiàn)了C語言,并很快得到廣泛的應用。80年代,在C的基礎上進行擴充,出現(xiàn)了C++,它增加了對象機制,是一種混合型的面向?qū)ο蟪绦蛟O計語言。C++以其高效的執(zhí)行效率贏得了廣大程序設計員的青睞,使面向?qū)ο蟮某绦蛟O計語言得到重視和廣泛應用。在2000年,Microsoft在自己的.NET框架計劃中,以C語言為樣本,沿用了C++的函數(shù)庫,研發(fā)了C#語言,它是一種面向?qū)ο蟆⒚嫦蚓W(wǎng)絡、面向組件的語言。1.2面向?qū)ο笳Z言的發(fā)展C家族1.2面向?qū)ο笳Z言的發(fā)展472結(jié)構(gòu)化程序設計與面向?qū)ο蟪绦蛟O計結(jié)構(gòu)化程序設計
自頂向下、逐步細化、模塊化設計、結(jié)構(gòu)化編碼
不足之處:數(shù)據(jù)與過程分離(1)編程時需要時刻考慮數(shù)據(jù)的格式;可重用性差(2)數(shù)據(jù)和程序要始終相容;易出錯程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設計語言+語言環(huán)境2結(jié)構(gòu)化程序設計與面向?qū)ο蟪绦蛟O計結(jié)構(gòu)化程序設計不足之處:482結(jié)構(gòu)化程序設計與面向?qū)ο蟪绦蛟O計面向?qū)ο蟪绦蛟O計
代碼重用、代碼維護、代碼共享、代碼精減程序=對象1+對象2+…+對象n對象=數(shù)據(jù)結(jié)構(gòu)+算法+程序設計語言+語言環(huán)境
2結(jié)構(gòu)化程序設計與面向?qū)ο蟪绦蛟O計面向?qū)ο蟪绦蛟O計程序=對493.1面向?qū)ο蟮幕靖拍顚ο?object)是系統(tǒng)用來描述客觀事物的一個實體,它是構(gòu)成系統(tǒng)的一個基本單位。對象是由屬性和服務構(gòu)成的。屬性用來表示對象的狀態(tài),服務用來描述對象的行為操作。對象具有如下特性:具有唯一標識名具有一個狀態(tài)、具有一組服務對象的成員仍可以是對象模塊獨立性、動態(tài)連接性、易維護性3.1面向?qū)ο蟮幕靖拍顚ο?object)503.1面向?qū)ο蟮幕靖拍铑?class)類是對象的抽象及描述,是具有共同屬性和操作的多個對象的相似特性的統(tǒng)一描述體。每個類要有一個名字標識,用以表示一組對象的共同特征。類中的每個對象都是該類的實例。類提供了完整的解決特定問題的能力,它描述了數(shù)據(jù)結(jié)構(gòu)(對象屬性)、算法(服務、方法)和外部接口(消息協(xié)議)。交通工具汽車火車公共汽車小轎車快速列車特快列車動車組3.1面向?qū)ο蟮幕靖拍铑?class)交通汽車火車公共汽513.1面向?qū)ο蟮幕靖拍钕?message)消息是面向?qū)ο笙到y(tǒng)中實現(xiàn)對象間的通信和請求任務的操作,是要求某個對象執(zhí)行其中某個功能操作的規(guī)格說明。發(fā)送消息的對象稱為發(fā)送者,接受消息的對象稱為接收者。對象間的聯(lián)系只能通過消息來進行。對象在接收到消息時才被激活。消息一般有三部分:接受對象名、調(diào)用操作名、參數(shù)。消息可分為公有消息和私有消息。消息具有三個性質(zhì):(1)同一對象可接收不同形式的多個消息,產(chǎn)生不同響應;(2)相同形式的消息可以送給不同對象,所做出的響應可以截然不同;(3)消息的發(fā)送可以不考慮具體的接收者,對象可以響應消息,也可對消息不予理會。3.1面向?qū)ο蟮幕靖拍钕?message)(1)同一523.1面向?qū)ο蟮幕靖拍罘椒?method)方法就是對象所能執(zhí)行的操作。方法包括界面和方法體兩部分。界面就是消息的模式,它給出了方法的調(diào)用協(xié)議;方法體則是實現(xiàn)某種操作的一系列計算步驟,也就是一段程序。消息和方法的關系:對象根據(jù)接收到的消息,調(diào)用相應的方法;有了方法,對象才能響應相應的消息。只要方法界面保持不變,改動方法體不會影響方法的調(diào)用。在C++語言中方法是通過函數(shù)來實現(xiàn)的,稱為成員函數(shù)。3.1面向?qū)ο蟮幕靖拍罘椒?method)533.2面向?qū)ο笙到y(tǒng)的特性抽象性(abstract)面向?qū)ο蠊膭畛绦騿T以抽象的觀點看待程序,即程序是由一組對象組成的。人們認識事物的兩種方法:從特殊到一般的歸納法和從一般到特殊的演繹法。將一組對象的共同特征抽象出來,從而形成“類”的概念。對于一個具體的類,它有許多具體的個體,我們稱這些個體叫做“對象”。
3.2面向?qū)ο笙到y(tǒng)的特性抽象性(abstract)543.2面向?qū)ο笙到y(tǒng)的特性封裝性(encapsulation)所謂數(shù)據(jù)封裝就是指一組數(shù)據(jù)和與這組數(shù)據(jù)有關的操作集合組裝在一起,形成一個能動的實體即對象。封裝給數(shù)據(jù)提供了與外界聯(lián)系的標準接口,只有通過這些接口,使用規(guī)范的方式,才能訪問這些數(shù)據(jù)。數(shù)據(jù)封裝使程序員設計程序時可以專注于自己的對象,同時切斷了不同模塊間數(shù)據(jù)的非法使用,減少了出錯的可能性。3.2面向?qū)ο笙到y(tǒng)的特性封裝性(encapsulation553.2面向?qū)ο笙到y(tǒng)的特性繼承性(inheritance)是指建立新的對象類型時,能夠從已有的對象類型獲得原對象的特點和功能。繼承的作用:一方面可以減少代碼冗余,另一方面可以通過協(xié)調(diào)性來減少相互之間的接口和界面。從繼承源上劃分繼承可分為單一繼承和多重繼承。從繼承內(nèi)容上繼承可分為取代繼承、包含繼承、受限繼承、特化繼承。父類子類3.2面向?qū)ο笙到y(tǒng)的特性繼承性(inheritance)父563.2面向?qū)ο笙到y(tǒng)的特性多態(tài)性(polymorphism)是指不同的對象接收到相同的消息時產(chǎn)生多種完全不同的行為的現(xiàn)象。C++支持兩種多態(tài)性:編譯時的多態(tài)性和運行時的多態(tài)性。編譯時的多態(tài)性通過重載函數(shù)實現(xiàn),而運行時的多態(tài)性通過虛函數(shù)實現(xiàn)。3.2面向?qū)ο笙到y(tǒng)的特性多態(tài)性(polymorphism)574面向?qū)ο蟮南到y(tǒng)開發(fā)方法系統(tǒng)調(diào)查和需求分析對系統(tǒng)要實現(xiàn)的功能及用戶對系統(tǒng)開發(fā)的需求進行調(diào)查研究。面向?qū)ο蠓治?OOA)在繁雜的問題域中抽象地識別出對象及其行為、結(jié)構(gòu)、屬性、方法等。面向?qū)ο笤O計(OOD)對分析的結(jié)果作進一步的抽象、歸類、整理,最終以規(guī)范的形式描述對象和類。面向?qū)ο蟪绦蛟O計(OOP)用面向?qū)ο蟮某绦蛟O計語言將上一步整理的對象和類的描述映射為應用程序軟件。4面向?qū)ο蟮南到y(tǒng)開發(fā)方法系統(tǒng)調(diào)查和需求分析585面向?qū)ο蟪绦蛟O計舉例
【例1.1】使用面向?qū)ο蟪绦蛟O計方法,編寫一個對堆棧進行處理的程序,包括壓棧和彈棧操作。源程序:stack.cpp1234512345stack1:stack2:NULLNULL5面向?qū)ο蟪绦蛟O計舉例【例1.1】使用面向?qū)ο蟪?9編輯鏈接編譯執(zhí)行程序代碼的錄入,生成源程序*.cpp語法分析查錯,翻譯生成目標程序*.obj與其它目標程序或庫鏈接裝配,生成可執(zhí)行程序*.exeC++程序的調(diào)試與運行編輯鏈接編譯執(zhí)行程序代碼的錄入,語法分析查錯,翻譯生成目標程60C++程序的書寫格式比較自由,一般一行寫一條語句
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024門面施工現(xiàn)場管理及應急預案合同3篇
- 2024年貨物出口合同標的及出口規(guī)格
- 2024年社區(qū)羽毛球館租賃協(xié)議3篇
- 2024汽車租賃公司新能源車輛推廣合同
- 2024年限定版房產(chǎn)市場調(diào)研與營銷策劃服務協(xié)議版B版
- 2024年跨界合作居間協(xié)議書
- 2024年鐵路軌道焊接分包商協(xié)議
- 2025年度餐廳與旅行社聯(lián)合運營美食旅游項目合同3篇
- 2024版鐵路安全協(xié)議書
- 職業(yè)學院工會評優(yōu)評先實施辦法
- 駕駛證學法減分(學法免分)試題和答案(50題完整版)1650
- 《法學概論》課程教學大綱
- 成品油稅收分類編碼
- 福建省廈門市高一上學期期末考試政治試題 Word版含答案
- 山東中醫(yī)藥大學中西醫(yī)臨床(專升本)學士學位考試復習題
- 鐵路貨場平面設計說明書
- 抽象函數(shù)的單調(diào)性
- 2019年血站績效考核標準
- 義務教育語文課程常用字表3500字
- 盤扣架支架計算小程序EXCEL
- 常規(guī)曳引電梯參數(shù)計算書
評論
0/150
提交評論