版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、.,1,C#面向對象程序設計概念,主講人:,.,2,個人簡介,.,3,面向對象的軟件開發(fā)技術是當今計算機技術發(fā)展的重要成果和趨勢之一。 C#是完全面向對象的程序設計語言。 類和對象是面向對象程序設計中的重要概念。 封裝性、繼承性和多態(tài)性是面向對象的特點。 本章主要介紹面向對象程序設計中的基本概念類和對象,.,4,一 面向對象的概述,1.1 面向對象的概念 面向對象程序設計(Object-Oriented Programming)簡稱OOP技術。 OOP是一種系統(tǒng)化的程序設計方法,強調直接以問題域(即現(xiàn)實世界)中的事物為中心來考慮問題,并按照這些事物的本質特征把它們抽象為對象。 OOP的主要思想
2、是將數(shù)據(jù)及處理這些數(shù)據(jù)的操作都封裝(Encapsulation)到一個稱為類(Class)的數(shù)據(jù)結構中。 在這種方法下,編程人員不需要過分關注“如何做”,而是重點關注“做什么”。OOP編程思想較好地適應了現(xiàn)實世界中的問題,因而得以廣泛應用。,.,5,1.2 面向對象語言的特點,面向對象的編程方式具有繼承、封裝和多態(tài)性特點。 (1)繼承 繼承(inheritance)是面向對象編程技術的一塊基石,通過它可以創(chuàng)建分等級層次關系的類。 繼承是父類和子類之間共享數(shù)據(jù)和方法的機制,通常把父類稱為基類,子類稱為派生類。子類可以從其父類中繼承屬性和方法,通過這種關系模型可以簡化類的設計。 假如已經(jīng)定義了A類
3、,接下來準備定義B類,而B類中有很多屬性和方法與A類相同,那么就可以實現(xiàn)B類繼承于A類,這樣就無須再在B類中定義A類中已具有的屬性和方法,從而可以在很大程度上提高程序的開發(fā)效率,提高代碼利用率。,.,6,例如,可以將水果看作一個父類,那么水果類具有顏色屬性。然后再定義一個香蕉類,在定義香蕉類時就不需要定義香蕉類的顏色屬性,通過如下繼承關系可以使香蕉類具有顏色屬性。 class 水果類 Public 顏色;/在水果類中定義顏色屬性 class 香蕉類 : 水果類 /香蕉類中其他的屬性和方法 ,1.2 面向對象語言的特點,.,7,1.2 面向對象語言的特點,(2) 封裝 類是屬性和方法的集合,為了
4、實現(xiàn)某項功能而定義類后,開發(fā)人員并不需要了解類體內(nèi)每行代碼的具體涵義,只需通過對象來調用類內(nèi)某個屬性或方法即可實現(xiàn)某項功能,這就是類的封裝。 封裝提供了外界與對象進行交互的控制機制,設計和實施者可以公開外界需要直接操作的屬性和方法,而把其他的屬性和方法隱藏在對象內(nèi)部。這樣可以讓軟件程序封裝化,而且可以避免外界錯誤地使用屬性和方法。,.,8,1.2 面向對象語言的特點,以汽車為例,廠商把汽車的顏色公開給外界,外界想怎么改顏色都可以的,但是防盜系統(tǒng)的內(nèi)部構造是隱藏起來的;更換汽缸可以是公開的行為,但是汽缸和發(fā)動機的協(xié)調方法就沒有必要讓用戶知道了。,.,9,1.2 面向對象語言的特點,(3) 多態(tài)性
5、 類的多態(tài)性(polymorph)指對于屬于同一個類的對象,在不同的場合能夠表現(xiàn)出不同的特征。 多態(tài)性主要指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同數(shù)據(jù)類型或表現(xiàn)出不同的行為。這使得同一個屬性或行為在一般類及其各個特殊類具有不同的意義。 例如:某個對象,其基類為“筆”,在調用它的“寫”方法時,程序會自動判斷出它的具體類型,如果是毛筆,則調用毛筆類對應的“寫”方法,如果是鉛筆,則調用鉛筆類對應的“寫”方法。,.,10,2 定義類,在C#中,“類”是一種數(shù)據(jù)結構,它可以包含數(shù)據(jù)成員(常量和字段)、函數(shù)成員(方法、屬性、事件、索引器、運算符、構造函數(shù)、析構函數(shù))。 類是個靜態(tài)的概念
6、,如果要使用某個類,就應該定義該類的一個或多個實例,每一個實例就是一個對象。如果要使用某個類,只要向該類發(fā)送消息即可,而對象會利用自身存在的函數(shù)來響應接收的消息。 類支持繼承,繼承是一種使派生類可以對基類進行擴展和專用化的機制。,.,11,2.1 類的概念,類是對象概念在面向對象編程語言中的反映,是相同對象的集合。類描述了一系列在概念上有相同含義的對象,并為這些對象統(tǒng)一定義了屬性和方法。 類是對象的抽象描述和概括。例如:車是一個類,自行車、汽車、火車也是類。但是自行車、汽車、火車都是車這個類的子類。因為他們有共同的特點都是交通工具,都有輪子,都可以運輸。而汽車有顏色,車輪、車門、發(fā)動機,這是和
7、自行車、火車的不同之處,是汽車類自己的屬性。,.,12,2.1 類的概念,而具體到某輛汽車就是一個對象了,例如:車牌照為蘇A2345*的黑色奧迪轎車。用具體的屬性可以在汽車類中唯一確定自己,并且對象具有類的操作。簡而言之,類是C#中最為強大的數(shù)據(jù)類型,它定義了數(shù)據(jù)類型的數(shù)據(jù)和行為。 在C#中,所有的內(nèi)容都被封裝在類中,類是C#的基礎,每個類通過屬性和方法及其他一些成員來表達事物的狀態(tài)和行為。 事實上,編寫C#程序的主要任務就是定義各種類及類的各種成員。,.,13,2.2 類的聲明,簡單地講,類是一種數(shù)據(jù)結構,用于模擬現(xiàn)實中存在的對象和關系,包含靜態(tài)的屬性和動態(tài)的方法。 C#中類的聲明需要使用c
8、lass關鍵字,并把類的主體放在花括號中,格式如下: 類修飾符 class 類名 :基類類名 /屬性 /方法 其中,除了class關鍵字和類名外,剩余的都是可選項;類名必須是合法的C#標識符,它將作為新定義的類的類型標識符。,.,14,2.2 類的聲明,class關鍵字前面是訪問級別。在C#中,類的訪問級別由類的修飾符進行限定,類的修飾符如表5-1所示。在上例中,如果類的修飾符為public,這表示該類可以被任何其他類訪問。類的名稱位于class關鍵字的后面。,.,15,2.2 類的聲明,以上的類修飾符可以兩個或多個組合起來使用,但需要注意下面幾點: (1) 在一個類聲明中,同一類修飾符不能多
9、次出現(xiàn),否則會出錯。 (2) new類修飾符僅允許在嵌套類中表示類聲明時使用,表明類中隱藏了由基類中繼承而來的、與基類中同名的成員。 (3) 在使用public、protected、internal和private這些類修飾符時,要注意這些類修飾符不僅表示所定義類的訪問特性,而且還表明類中成員聲明中的訪問特性,并且它們的可用性也會對派生類造成影響。 (4) 抽象類修飾符abstract和密封類修飾符sealed都是受限類修飾符。 (5) 如果省略類修飾符,則默認為私有修飾符private。 (6) 對于具有繼承關系的類才有基類。如果一個類沒有從任何類繼承,就不需要基類類名選項。在C#中,一個類
10、只能從另一個類中繼承,而不能從多個類中繼承;而在C+及其他面向對象的程序設計語言中,一個類可以從多個其他類中繼承。如果一個類想繼承多個類的特點,可以采用接口的方法實現(xiàn)。,.,16,2.2 類的聲明-實例,下面以一個學生類的實例,說明該類在C#中的實現(xiàn)。該類的類圖如圖5-3所示。 【例5-1】定義一個學生類。 public class Student /屬性 /學號、姓名、年齡等 /方法 /長大、入學、畢業(yè)等 ,.,17,類是現(xiàn)實世界中對象或者關系的模擬,是一個抽象的概念。例如,像“學生”這個概念,世界上并沒有一個叫做“學生”的活生生的東西,而只有“張三”或者“李四”這些具體的學生實例,這反應了類和對象的關系。 (1)類是具有相同或相似結構、操作和約束規(guī)則的對象組成的集合。 (2)對象是某一類的具體化實例,每一個類都具有某些共同特征對象的抽象。 C#使用new關鍵字來實現(xiàn)實例化類得到一個具體的對象,其格式如下: class-name object-name=new Class-name(paramenter-list)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡電影推廣服務合同
- 移動支付平臺開發(fā)與市場推廣策略研究報告
- 量化趨勢交易課程設計
- c 課課程設計學籍管理系統(tǒng)
- 智能穿戴設備研發(fā)與應用服務合同
- 農(nóng)業(yè)現(xiàn)代化新型職業(yè)農(nóng)民培育與培訓方案
- 體育產(chǎn)業(yè)賽事策劃與市場推廣方案設計
- 2023屆高考化學人教版一輪復習測評-(十七) 化學能與熱能
- 亳州2024商業(yè)用地租賃協(xié)議格式
- 人工智能輔助人力資源管理與優(yōu)化合同
- 2024-2025學年九年級上學期期中考試英語試題
- 四川新農(nóng)村建設農(nóng)房設計方案圖集川西部分
- 安全工程導論課件:事故致因理論
- 2024年國家公務員考試《行測》真題卷(行政執(zhí)法)答案和解析
- 車輛采購服務投標方案(技術方案)
- 中國融通集團招聘筆試題
- 2023年春江蘇開放大學《江蘇紅色文化》過程性考核作業(yè)一二和綜合大作業(yè)+參考答案
- 雨污水管道工程施工進度表1
- 毽球校本課程開發(fā)綱要
- 飛機試飛測試的現(xiàn)狀與對策
- 圖案—國外現(xiàn)代圖案ppt課件
評論
0/150
提交評論