版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第1 1章章 面向對象程序設計面向對象程序設計2教學目標教學目標n比較面向對象與面向過程的程序設計n類與對象n封裝與信息隱藏n繼承n多態(tài)性n面向對象的建模和UML 31.11.1比較面向對象與面向過程程序設計比較面向對象與面向過程程序設計n面向過程程序設計n程序由多個模塊模塊構成 n程序組成單位:過程或函數(shù)n結構化程序設計:n自頂向下、逐步求精的功能分解法,n一個要解決的問題被分解成若干個子問題,每個子問題又被劃分成若干個子子問題。這種自頂向下的功能分解一直持續(xù)下去,直到子問題足夠簡單,可以在相應的子過程中解決。 n存在問題:把數(shù)據(jù)和處理數(shù)據(jù)的過程分離n可復用性差 、開發(fā)和維護都很困難。4面
2、向過程程序設計面向過程程序設計int max(int num1,int num2) if (num1num2) return num1; else return num2;圖圖1-11-1:自頂向下的功能分解與程序結構:自頂向下的功能分解與程序結構5面向對象程序設計面向對象程序設計n面向對象其實是現(xiàn)實世界模型的自然延伸。n現(xiàn)實世界是由一個一個對象組成;n對象之間通過消息(請求和服務)相互協(xié)作,完成系統(tǒng)的功能.61.2 1.2 類與對象類與對象n面向對象程序設計面向對象程序設計: :n將客觀事物(或實體)看作具有屬性和行為(或稱服務)的對象(object),通過抽象抽象找出同一類對象的共同屬性(
3、靜態(tài)特征)和行為(動態(tài)特征),而形成類類(class)的概念。n程序的執(zhí)行,表現(xiàn)為一組對象之間的交互通信。對象之間通過公共接口進行通信,從而完成系統(tǒng)功能。n類是相同對象的集合的描述類是相同對象的集合的描述。 例如,類Human就是現(xiàn)實世界中人(對象)的集合,我、你、他都是Human的對象。 分析類Human的所有對象人,得到對象的共同的數(shù)據(jù)屬性和行為,如下所示: 數(shù)據(jù)屬性:編號、姓名、年齡, 行為:吃飯、走路、跳舞, 抽象是對具體對象進行概括,抽象出這一類對象的公共性質并加以描述的過程。n先注意問題的本質及描述,其次是實現(xiàn)過程或細節(jié)。71.2 1.2 類與對象類與對象( (續(xù)續(xù)) )定義定義H
4、umanHuman類類:class Human int no; String name; int age; void eat() Human被稱作類名。no,name,age被稱作域域(fields)或變量或變量,eat()被稱作方法方法(methods),它們都是類的成員。 81.2 1.2 類與對象類與對象( (續(xù)續(xù)) )n在面向對象的編程語言中,n類是一個數(shù)據(jù)類型n對象是類的實例對象是類的實例(instance)。n引用變量:具有類類型的變量被稱作對象引用對象引用(object reference)。例如,Human p1=new Human(1,“張三”,20,);p1被稱作對象引用變
5、量,new Human(1,”張三“,20,) 被稱作Human的對象。9對象對象n對象對象: :是用來描述是用來描述現(xiàn)實世界中實際存在的事物現(xiàn)實世界中實際存在的事物的實的實體體,它是用來構成系統(tǒng)的一個單位。n對象由一組屬性和一組行為對象由一組屬性和一組行為( (操作或服務)構成構成。n對象具有固定的對外接口對外接口.n一組屬性和操作的集合.n對象之間通過公共接口進行通信.n對象的狀態(tài)對象的狀態(tài):n對象的屬性值對象的屬性值表示了它所處于的狀態(tài);n對象的操作對象的操作是用來改變對象狀態(tài)。101.3 1.3 封裝與信息隱藏封裝與信息隱藏n封裝封裝(Encapsulation)是面向對象方法的重要原
6、則。n就是把對象的屬性和操作(或服務)結合為一個獨立的整體(系統(tǒng)單位),并盡可能隱藏對象的內部實現(xiàn)細節(jié)。n封裝有兩個含義:n其一,把對象的全部屬性和全部服務結合在一起,形成一個不可分割的獨立單位類。n其二,“信息隱蔽”,盡可能隱蔽對象的內部細節(jié),對外界形成一個邊界,只保留有限的對外接口使之與外部發(fā)生聯(lián)系。111.3 1.3 封裝與信息隱藏封裝與信息隱藏( (續(xù)續(xù)) )nJavaJava語言中,定義類時通過大括號語言中,定義類時通過大括號 封裝了類封裝了類的成員:的成員:n域域(fields)(fields)和方法和方法(methods)(methods),n使用private和public等關
7、鍵字來控制對類的成員的訪問,其中private修飾的成員是隱藏的,而public修飾的成員則定義了類對外的公共接口。n類作為一個抽象的數(shù)據(jù)類型類作為一個抽象的數(shù)據(jù)類型n允許用戶從底層實現(xiàn)細節(jié)中抽象出來,提供給用戶的是在公共接口上的上層操作。這是抽象性抽象性的含義。121.4 繼承繼承InheritanceInheritancen繼承繼承: :在已有類(父類或超類)的基礎上派在已有類(父類或超類)的基礎上派生出新的類(子類),新的類能夠吸收已生出新的類(子類),新的類能夠吸收已有類的屬性和行為,并擴展新的能力有類的屬性和行為,并擴展新的能力。n繼承機制中,往往從一組類中抽象出公共屬性放在父類。n
8、繼承支持著軟件代碼的復用,是提高軟件開發(fā)效率的重要因素之一。 13繼承的例子繼承的例子 例如,給定類Car、Motocycle和Truck,我們把它們的公共屬性放在一個稱為Vehicle的公共父類中。VehicalCarMotocycleTruck14繼承的例子繼承的例子蘋果蘋果梨梨西瓜西瓜水果水果15繼承的例子繼承的例子CircleCircleRectangleRectangleShape161.4 繼承繼承(續(xù)續(xù)) Java中繼承的一個例子:給定一個Window類,通過繼承擴展它而得到一個子類MenuWin。class Win / Win的成員定義class MenuWin extends
9、 Win /MenuWin新增加成員的定義171.4 繼承繼承(續(xù)續(xù))n繼承分為繼承分為: :n單繼承單繼承是指一個子類最多只能有一個父類。n多繼承多繼承是一個子類可有二個以上的父類。n由于多繼承會帶來二義性,在實際應用中應盡量使用單繼承。Java語言中的類只支持單繼承,而接口支持多繼承。 如何設計繼承并完成繼承層次是面向對象設計和編程的核心問題。繼承是多態(tài)性的前提條件。18objectWinDialogWin單繼承,in javaClass 1Class 4Class 2Class 3多繼承多繼承,in C+單繼承與多繼承例子單繼承與多繼承例子191.5 多態(tài)性多態(tài)性n多態(tài)性多態(tài)性(Poly
10、morphismPolymorphism):n指在超類中定義的屬性或行為,被子類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。n這使得同一個屬性或行為在超類及其各個子類中具有不同的語義。20本節(jié)小結本節(jié)小結n面向對象方法的顯著特性n封裝性、抽象性、繼承性和多態(tài)性n將面向對象設計方法應用于程序的開發(fā)工具和開發(fā)過程中,不僅可以加快開發(fā)的速度,還可極大地增強程序的可維護性和可擴展性,提高代碼重用率。211.6 面向對象的建模和面向對象的建模和UMLn統(tǒng)一建模語言(Unified Modeling Language,UML)是一種流行的建模語言。nUML是一種圖形化語言,允許系統(tǒng)構造人員(即軟件
11、設計師、系統(tǒng)工程師、程序員等)用一種通用表示法描述系統(tǒng)的需求以及面向對象的分析和設計結果。221.6 面向對象的建模和面向對象的建模和UML(續(xù)續(xù))n作為一個建模語言, UML由一個用于表達模型的詞匯表和一個定義怎樣組合詞匯的語法規(guī)則構成,即: UML = UML詞匯表 + UML建模的語法規(guī)則 UML詞匯表 = UML 事物+ 關系+ 模型圖。nUML UML 事物(事物(ThingThing):就是被模擬的實體或對象。事物可能是包、類、接口等等。n事物之間的語義上的聯(lián)系事物之間的語義上的聯(lián)系:用關系表示,UML中共有4種關系,它們是:依賴關系、關聯(lián)關系、泛化關系和實現(xiàn)關系。n從軟件的體系結構出發(fā),UMLUML把軟件模型分成了四個視圖:把軟件模型分成了四個視圖:用例視圖、邏輯視圖、實現(xiàn)視圖和分布視圖。用例視圖、邏輯視圖、實現(xiàn)視圖和分布視圖。 在本書的有關章節(jié)中,案例分析和設計的結果用UML圖形化表示,使讀者對UML有一個感性化認識。 23小結小結
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年六盤水貨運從業(yè)資格證考試模擬考試題庫
- 上?,F(xiàn)代化工職業(yè)學院《服務管理》2023-2024學年第一學期期末試卷
- 上海外國語大學賢達經(jīng)濟人文學院《交通大數(shù)據(jù)與人智能》2023-2024學年第一學期期末試卷
- 2025工業(yè)企業(yè)借款合同書
- 上海外國語大學《商務翻譯I》2023-2024學年第一學期期末試卷
- 上海外國語大學《高性能計算導論》2023-2024學年第一學期期末試卷
- 2025物業(yè)服務合同糾紛民事起訴狀
- 鍋爐總體調試報告范文
- 消防單位實踐報告范文
- 上海商學院《智能終端軟件設計及開發(fā)》2023-2024學年第一學期期末試卷
- DB4401-T 268-2024 養(yǎng)老機構感染預防與控制處置規(guī)范
- 農村環(huán)境長效保潔服務投標方案(技術方案)
- 【課件】第六單元碳和碳的氧化物+新版教材單元分析-2024-2025學年九年級化學人教版(2024)上冊
- 2024年軍隊文職統(tǒng)一考試《專業(yè)科目》管理學試卷(網(wǎng)友回憶版)含解析
- DB13-T 5863-2023 造血干細胞移植病區(qū)醫(yī)院感染預防與控制規(guī)范
- 山東省水利水電工程施工企業(yè)安全生產管理人員(C類)考試題庫(含答案)
- 初中語文講座:《素養(yǎng)導向初中語文大單元教學》課件
- 2024過敏性休克搶救指南(2024)課件干貨分享
- 電批風批扭力測試記錄
- (高清版)WS∕T 389-2024 醫(yī)學X線檢查操作規(guī)程
- 店鋪(初級)營銷師認證考試題庫附有答案
評論
0/150
提交評論