![第六面向?qū)ο缶幊袒A演示文稿_第1頁](http://file4.renrendoc.com/view/b5a7d8c11c47e11b37d30e94d06f76d9/b5a7d8c11c47e11b37d30e94d06f76d91.gif)
![第六面向?qū)ο缶幊袒A演示文稿_第2頁](http://file4.renrendoc.com/view/b5a7d8c11c47e11b37d30e94d06f76d9/b5a7d8c11c47e11b37d30e94d06f76d92.gif)
![第六面向?qū)ο缶幊袒A演示文稿_第3頁](http://file4.renrendoc.com/view/b5a7d8c11c47e11b37d30e94d06f76d9/b5a7d8c11c47e11b37d30e94d06f76d93.gif)
![第六面向?qū)ο缶幊袒A演示文稿_第4頁](http://file4.renrendoc.com/view/b5a7d8c11c47e11b37d30e94d06f76d9/b5a7d8c11c47e11b37d30e94d06f76d94.gif)
![第六面向?qū)ο缶幊袒A演示文稿_第5頁](http://file4.renrendoc.com/view/b5a7d8c11c47e11b37d30e94d06f76d9/b5a7d8c11c47e11b37d30e94d06f76d95.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第六面向?qū)ο缶幊袒A演示文稿現(xiàn)在是1頁\一共有36頁\編輯于星期五優(yōu)選第六面向?qū)ο缶幊袒A現(xiàn)在是2頁\一共有36頁\編輯于星期五面向?qū)ο缶幊痰幕靖拍蠲嫦驅(qū)ο缶幊?Object-OrientedProgramming)簡稱OOP技術。面向?qū)ο缶幊痰目傮w思路是:將數(shù)據(jù)及處理這些數(shù)據(jù)的操作都封裝到一個稱為類(Class)的數(shù)據(jù)結(jié)構中,在程序中使用的是類的實例——對象。對象是代碼與數(shù)據(jù)的集合,是封裝好了的一個整體,對象具有一定的功能。程序是由一個個對象構成的,對象之間通過一定的“相互操作”傳遞消息,在消息的作用下,完成特定的功能。對象=(算法+數(shù)據(jù)結(jié)構)程序=(對象+對象)現(xiàn)在是3頁\一共有36頁\編輯于星期五面向?qū)ο缶幊痰奶攸c面向?qū)ο缶幊谭绞骄哂蟹庋b、繼承及多態(tài)性等特點。封裝性:
類是屬性和方法的集合,為了實現(xiàn)某項功能而定義類后,開發(fā)人員并不需要了解類體中的每句代碼的具體含義,只需通過對象來調(diào)用類中的某個屬性或方法即可實現(xiàn)某項功能,這就是類的封裝性。例如:在使用電腦時,并不需要將電腦拆開了解每個部件的作用,用戶只需按下Power鍵就可以啟動電腦,在鍵盤上敲打就可以將文字輸入到電腦,但電腦內(nèi)部的構造用戶可能不需要了解,這就是封裝性的具體體現(xiàn)。現(xiàn)在是4頁\一共有36頁\編輯于星期五通過繼承可以創(chuàng)建子類和父類之間的層次關系,子類可以從其父類中繼承屬性和方法。例如:水果看成父類,那么水果具有顏色屬性,然后定義一個蘋果類,在定義蘋果類時完全可以不定義蘋果類的顏色屬性,通過繼承,蘋果具有了水果類的顏色屬性。class水果類{public顏色//在水果類中定義的顏色屬性}class蘋果類:水果類{//在蘋果類中定義其他的屬性和方法}繼承性現(xiàn)在是5頁\一共有36頁\編輯于星期五多態(tài)性類的多態(tài)指不同的類進行同一操作可以有不同的行為。例如:定義了一個汽車類和火車類,他們都可以移動,說明了兩者在這方面可以進行相同的操作。然而,火車和汽車的移動是截然不同的,因為火車必須在鐵軌上行駛,而汽車在公路上行駛?,F(xiàn)在是6頁\一共有36頁\編輯于星期五類的定義和對象的聲明類的定義: 通常把具有同樣性質(zhì)和功能的東西所構成的集合叫作類。類是C#程序設計的基本單位,用類聲明的變量稱為”類的實例”或”類的對象”.類和對象:1.類是一種類型定義;對象則是該類型的一種實例,在程序運行時創(chuàng)建。2.類是一種數(shù)據(jù)結(jié)構,用來模擬現(xiàn)實中存在的對象和關系,包含靜態(tài)的屬性和動態(tài)的方法。示例:所有學生都具有共同的行為(考試和上課)和基本的屬性(學號,所在的班級等)。現(xiàn)在是7頁\一共有36頁\編輯于星期五[類修飾符]class類名[:基類類名] { 成員定義列表;(編寫屬性,方法,事件等代碼) }
注意:除了class關鍵字和類名外,剩余的都是可選的。類修飾符可以是abstract,sealed,public,protected,internal之一。
abstract:抽象類,不允許建立類的實例,只能繼承。sealed:密封類,不允許被繼承,只能實例化,只能在當前項目中訪問
public:不限制對該類的訪問,類可在任何地方訪問。protected:對其所在的類以及類的子類進行訪問。internal:只能在當前項目中訪問(默認值)。類的聲明現(xiàn)在是8頁\一共有36頁\編輯于星期五對象:是從類定義實例化,這表示創(chuàng)建類的一個實例.聲明對象:類名對象名;例如:Students;//聲明一個Student類的對象s實例化對象: 在聲明對象之后,需要使用new關鍵字將對象實例化。對象名=new類名();例如:s=newStudent();//實例化s,為s分配內(nèi)存空間訪問對象: 訪問對象,實質(zhì)就是訪問對象成員,使用”.”運算符。例如:s.age=22;//給s的數(shù)據(jù)成員賦值
對象的創(chuàng)建現(xiàn)在是9頁\一共有36頁\編輯于星期五類的基本成員及訪問控制1.字段(域):存儲要滿足其設計所需要的數(shù)據(jù)。2.屬性:提供靈活的機制來讀取,設置或計算私有或受保護字段的值。3.方法:方法是對象能夠執(zhí)行的一些操作,它體現(xiàn)了對象的功能。4.構造函數(shù)和析構函數(shù):對對象進行初始化和回收資源。5.事件:由類產(chǎn)生的通知,用于說明發(fā)生了什么事情。6.索引器:允許編程人員在訪問數(shù)組時,通過索引器訪問類的多個實例。又稱下標指示器。7.運算符:定義類的實例能使用的運算符。8.常量:用來定義與類相關的常量值。
現(xiàn)在是10頁\一共有36頁\編輯于星期五類的成員訪問控制:在編寫程序時,可以對類的成員使用不同的訪問修飾符,從而定義它們的訪問級別,即類成員的可訪問性(Accessibility)。在C#中,根據(jù)類成員的可訪問性可以把類成員分成四類,分別是公有成員(public)、私有成員(private)、保護成員(protected)、內(nèi)部成員(internal)。
現(xiàn)在是11頁\一共有36頁\編輯于星期五訪問修飾符public:表示公共訪問,它是允許訪問的最高級別。共有成員可以在代碼的任何位置對其進行訪問。private:表示私有訪問,私有成員只能在聲明自身的類中的才能進行訪問(如果沒有使用任何關鍵字,就默認使用這個關鍵字)protected:表示受保護的訪問,受保護的成員只能由其所在的類中訪問并且可以由派生類中的代碼去訪問internal:成員只能由定義它的項目(程序集)內(nèi)部的代碼訪問。現(xiàn)在是12頁\一共有36頁\編輯于星期五成員訪問修飾符classStudent { //聲明兩個字段 stringname=“”; intage=22; //返回姓名的方法 publicstringgetName() { returnname; } } //類實例化Students=newStudent(); Console.WriteLine(s.getName());//訪問字段Console.WriteLine();
現(xiàn)在是13頁\一共有36頁\編輯于星期五類的靜態(tài)成員和實例成員 類的成員又可以分成靜態(tài)成員和非靜態(tài)成員。在聲明成員時,如果在語句前加上static保留字,則該成員是靜態(tài)成員,如果沒有static保留字,則成員是非靜態(tài)成員。二者最重要的區(qū)別是:靜態(tài)成員屬于類所有,非靜態(tài)成員屬于類的實例所有,所以又稱實例成員?,F(xiàn)在是14頁\一共有36頁\編輯于星期五屬性對私有或保護成員常見的訪問就是讀取或設置數(shù)據(jù)值,在類定義的外部,這種訪問可以通過屬性成員實現(xiàn)。定義屬性:AccessModifyTypePropertyName { get {//取值代碼} set {//賦值代碼} }現(xiàn)在是15頁\一共有36頁\編輯于星期五注意:如果只提供get方法,則該屬性為只讀;如果只提供set方法,則該屬性為只寫.只寫屬性適合于保護密碼這樣的敏感數(shù)據(jù).C#中建議通過屬性訪問字段.示例:定義一個student類,將字段的訪問控制設為private,通過屬性控制在類外訪問字段的權限.現(xiàn)在是16頁\一共有36頁\編輯于星期五屬性使用classStudent{
privatestringid;
privatestringname;
//id的屬性
publicstringID
{get{returnid;//返回讀取的值}set{id=value;//value是一個關鍵字,表示要寫入的數(shù)據(jù)成員的值}
}
}現(xiàn)在是17頁\一共有36頁\編輯于星期五通過屬性設置訪問數(shù)據(jù)成員classProgram{staticvoidMain(string[]args){Students=newStudent();//用屬性設置修改數(shù)據(jù)成員的值(set)s.ID="123456";s.Name="bill";
//用屬性設置獲取數(shù)據(jù)成員的值(get)Console.WriteLine("ID={0},Name={1}",s.ID,s.Name);}}現(xiàn)在是18頁\一共有36頁\編輯于星期五方法方法是一種用于實現(xiàn)可由對象或類執(zhí)行的計算或操作的成員。方法是類成員的一種,通常稱為函數(shù)成員。類的方法主要是和類相關聯(lián)的動作,它是類的外部界面,對于那些私有的字段來說,外部界面實現(xiàn)對它們的操作一般只有通過方法來實現(xiàn)。通過方法的調(diào)用,使不同類之間可以相互溝通,完成所要執(zhí)行的運算或者特定的工作?,F(xiàn)在是19頁\一共有36頁\編輯于星期五方法的定義聲明[attributes][method-modifiers]returnTypemember([formal-parameter-list]){block…}參數(shù)說明: attributes:表示訪問修飾符,通常把所有方法都定義為publicmethod-modifiers:表示修飾符returnType:返回值類型member:表示方法的名稱formal-parameter-list:用逗號隔開的類型,標識符(參數(shù))block:表示方法體注意:如果方法沒有返回值,其返回的類型必須是void
現(xiàn)在是20頁\一共有36頁\編輯于星期五無參方法示例代碼:publicstaticvoidadd(){ inta,b,c; a=1; b=2; c=a+b; Console.WriteLine(c);} publicstaticintadd(){ inta,b,c; a=1; b=2; c=a+b; returnc;}
現(xiàn)在是21頁\一共有36頁\編輯于星期五方法的參數(shù)調(diào)用方法時,可以給該方法傳遞一個或多個值。實參:傳給方法的值叫做實參。形參:在方法內(nèi)部,接受實參的變量叫做形參。形參在緊跟著方法名的括號中聲明?,F(xiàn)在是22頁\一共有36頁\編輯于星期五示例代碼:classProgram{staticvoidMain(string[]args){Console.WriteLine(country("中國人"));}//定義一個country靜態(tài)方法,返回值為stringpublicstaticstringcountry(stringstrCountry){return"我是"+strCountry;}}現(xiàn)在是23頁\一共有36頁\編輯于星期五方法的參數(shù)的類型值參數(shù):聲明時不帶修飾符的參數(shù)是值參數(shù)。在方法內(nèi)對值參數(shù)的操作不會改變傳給方法時變量的值。因為將值類型傳遞給方法時,傳遞的是副本而不是對象。引用參數(shù)(ref):如果要傳遞原值并修改它,使用引用參數(shù)。因為在傳遞一個變量給方法而不僅僅是傳遞的是它的值。在傳遞時變量必須被初始化。輸出參數(shù)(out):用來返回一個結(jié)果,與引用參數(shù)參數(shù)的區(qū)別在于它不必初始化。參數(shù)數(shù)組(params):在方法的參數(shù)列表中只允許出現(xiàn)一個參數(shù)數(shù)組而且在方法同時具有固定參數(shù)和參數(shù)數(shù)組的情況下,參數(shù)數(shù)組必須放在整個參數(shù)列表的最后,并且參數(shù)數(shù)組只允許是一維數(shù)組?,F(xiàn)在是24頁\一共有36頁\編輯于星期五靜態(tài)方法和非靜態(tài)方法方法分為靜態(tài)方法和非靜態(tài)方法,若一個方法聲明中含有static修飾符,則稱該方法為靜態(tài)方法,若沒有static修飾符,則稱該方法為非靜態(tài)方法。兩者的區(qū)別在于static修飾的靜態(tài)方法屬于類所有,可以通過類名訪問,而沒有static修飾的方法屬于類的實例所有,可以通過實例進行訪問。現(xiàn)在是25頁\一共有36頁\編輯于星期五方法的重載方法重載:方法簽名由方法名稱和一個參數(shù)列表(參數(shù)的類型和順序)組成,只要簽名不同,就可以在一個類中定義具有相同名稱的多個方法,當定義兩種或兩種以上具有相同名稱的方法時,就稱為方法重載。調(diào)用時,編譯器根據(jù)參數(shù)的設置就可以判斷在哪種情況下調(diào)用哪種方法。特點:1.調(diào)用同一方法名2.但各方法中的參數(shù)的數(shù)據(jù)類型,個數(shù),或順序不同?,F(xiàn)在是26頁\一共有36頁\編輯于星期五構造函數(shù)和析構函數(shù)構造函數(shù)和析構函數(shù)是類中比較特殊的兩種成員函數(shù),主要用來對對象進行初始化和回收對象資源。一般來說,對象的生命周期從構造函數(shù)開始,以析構函數(shù)結(jié)束。如果一個類含有構造函數(shù),在實例化該類的對象時就會調(diào)用,如果含有析構函數(shù),則會在銷毀對象時調(diào)用它。析構函數(shù)和構造函數(shù)的名字相同,但析構函數(shù)要在名字前加一個波浪號(~)。當退出含有該對象的成員時,析構函數(shù)就會自動釋放這個對象所占用的內(nèi)存空間。現(xiàn)在是27頁\一共有36頁\編輯于星期五構造函數(shù)使用new關鍵字來創(chuàng)建一個對象時,公共語言運行庫必須使用那個類的定義來構造對象。并且必須從操作系統(tǒng)中申請一個內(nèi)存區(qū)域,在其中填充類定義字段,然后調(diào)用構造函數(shù)來執(zhí)行任何必要的初始化。一個類可以具有多個構造函數(shù),如果用戶沒有為類定義構造函數(shù),編譯器就會自動生成一個默認的構造函數(shù),當然這個默認的構造函數(shù)不會執(zhí)行任何操作?,F(xiàn)在是28頁\一共有36頁\編輯于星期五聲明構造函數(shù)構造函數(shù)主要用來初始化類的實例,聲明構造函數(shù)是一個特殊的方法,與一般的方法相比,構造函數(shù)的名字必須和類的名字相同,可以具有0個或多個參數(shù)并且沒有返回值(包括void類型)。示例:
classTaxi { publicTaxi() { //初始化對象的數(shù)據(jù)成員 } }注意:不帶參數(shù)的構造函數(shù)稱為“默認構造函數(shù)”,無論何時,只要使用new運算符實例化對象,并且不為new提供任何參數(shù),就會調(diào)用默認構造函數(shù)現(xiàn)在是29頁\一共有36頁\編輯于星期五構造函數(shù)重載構造函數(shù)和方法一樣可以重載,重載構造函數(shù)為創(chuàng)建對象提供了更大的靈活性,以滿足創(chuàng)建對象時的不同需要。示例:
classTaxi { publicTaxi() { //初始化對象的數(shù)據(jù)成員 }
publicTaxi(stringcolor,stringweight) { //初始化對象的數(shù)據(jù)成員
} }現(xiàn)在是30頁\一共有36頁\編輯于星期五析構函數(shù)析構函數(shù)用于類的實例,析構是指回收對象中無用的資源。C#中一個類只能有一個析構函數(shù),并且無法調(diào)用析構函數(shù),這些析構函數(shù)都是自動調(diào)用的。由于.NETFramework實行了一種垃圾回收機制,.NETFramework決定何時回收對象中的資源。析構函數(shù)的名稱是在類型前加”~”字符,并且沒有參數(shù)。現(xiàn)在是31頁\一共有36頁\編輯于星期五示例:ClassMyClass{ ~MyClass() {代碼}}通常析構函數(shù)的代碼是不用編寫的,因為.NETFramework會替開發(fā)人員完成大部分工作。注意:當應用程序封裝窗口,文件和網(wǎng)絡連接這類非托管資源時,應當使用析構函數(shù)回收資源?,F(xiàn)在是32頁\一共有36頁\編輯于星期五const常量與readonly關鍵字const關鍵字用于修改字段或局部變量的聲明,它指定字段或局部變量的值是常數(shù),不能被修改。
注意:readonly關鍵字與const關鍵字不同。const字段只能在該字段的聲明中初始化。readonly字段可以在聲明或構造函數(shù)中初始化。因此,根據(jù)所使用的構造函數(shù),
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 固定資產(chǎn)投資項目社會穩(wěn)定風險分析章和評估報告編制大綱()的
- 群文閱讀在高中英語閱讀教學中的應用研究
- 基于雙因素理論的S公司管培生流失調(diào)查與改進對策研究
- 化歸思想在初中數(shù)學中的教學研究
- 天然糖綴合物chartreusin及其類似物的合成研究
- 2025年金剛石磨具磨料項目可行性研究報告
- FTO介導PRKCB m6A去甲基化修飾參與NF-κB信號通路促進ARDS肺泡內(nèi)高凝和纖溶抑制的實驗研究
- 學術期刊科學數(shù)據(jù)出版研究
- 生物降解地膜在甜菜生產(chǎn)中的生物學效應研究
- 深度翻譯理論指導下的民俗文化文本翻譯實踐報告
- 人教版四年級上冊寒假數(shù)學計算題天天練及答案(共15天)
- 2024人教版英語七年級下冊《Unit 3 Keep Fit How do we keep fit》大單元整體教學設計2022課標
- 山東省海洋知識競賽(初中組)考試題及答案
- 藥品流通監(jiān)管培訓
- JD37-009-2024 山東省存量更新片區(qū)城市設計編制技術導則
- 《廣西高標準農(nóng)田耕地質(zhì)量評價工作 指導手冊》
- 人教版四年級下冊數(shù)學全冊教案含反思
- 北京市海淀區(qū)重點中學2025屆高考數(shù)學押題試卷含解析
- 霧化吸入技術教學課件
- 2024EPC施工總包合同范本
- 專利代理師資格考試題及答案(含真題、必會題)
評論
0/150
提交評論