版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、4類和對象4.1類和對象的概念 類的概念是為了讓程序設(shè)計(jì)語言能更清楚的描述日常生活的事物,類是對現(xiàn)實(shí)世界中一系列具有相同性質(zhì)的事物的總稱,是對具有共同數(shù)據(jù)和行為的一類事物的抽象描述。共同數(shù)據(jù)被描述為類中的數(shù)據(jù)成員,共同行為被描述為類中的方法成員;對象則是實(shí)際存在的屬該類事物的具體個體。因而也稱實(shí)例()。下面是一個“汽車類”和“汽車實(shí)例”的例子人類張三李四王五類對象第1頁,共30頁。工作吃飯學(xué)習(xí)身高年齡.性別人屬性行為4類和對象4.1類和對象的概念 第2頁,共30頁。類=(算法+數(shù)據(jù)結(jié)構(gòu))面向?qū)ο蟪绦虻慕Y(jié)構(gòu)特點(diǎn)程序=(類+類+)第3頁,共30頁。封裝行類為用戶提供對象的屬性和行為的接口用戶通過這
2、些接口使用這些類,無須知道這些類的內(nèi)部如何構(gòu)造的。不能操作類中的內(nèi)部數(shù)據(jù)將內(nèi)部數(shù)據(jù)隱藏4.2 面向?qū)ο蟪绦蛟O(shè)計(jì)語言的三大原則案例:人操作機(jī)器的例子人通過幾個按鈕就可以享受機(jī)器提供的服務(wù)了機(jī)器可看作是一個對象第4頁,共30頁。繼承性4.2 面向?qū)ο蟪绦蛟O(shè)計(jì)語言的三大原則繼承描述子類與父類之間的一種關(guān)系,通過繼承,子類既保留了父類原有的功能,又可以根據(jù)需求進(jìn)行相應(yīng)的擴(kuò)展。第5頁,共30頁。多態(tài)4.2 面向?qū)ο蟪绦蛟O(shè)計(jì)語言的三大原則多態(tài)指的是多個對象對于同一個指令,有各自的理解,產(chǎn)生不同的行為。Cut演員停止表演理發(fā)師剪發(fā)他們表現(xiàn)的形態(tài)是不同的!第6頁,共30頁。4.3、 類的定義在中,類可以使用關(guān)
3、鍵字來定義,類的聲明格式如下: 訪問修飾符 類名 類的成員定義 其中,訪問修飾符關(guān)鍵字可選,是變量的作用域,有6個關(guān)鍵字可選,這6個關(guān)鍵字含義如下:全局變量。:私有變量。(默認(rèn)為):受保護(hù)的變量。(在其子類中可以被訪問):可在同一個鏈接庫中訪問。(在所在的程序集中可以被訪問):密封類,不允許被繼承。:抽象類,不允許建立類的實(shí)例。說明:訪問修飾符中 1-4為訪問權(quán)限修飾符,類的修飾符可以為 或者 但通常為,當(dāng)一個類沒有寫修飾符時其訪問權(quán)限為,當(dāng)一個類的成員沒有寫修飾符時其訪問權(quán)限為第7頁,共30頁。4.4、對象的定義例如,通過學(xué)生類,可以創(chuàng)建一個學(xué)生對象的代碼如下所示。 = ();上面代碼中,“
4、”是對象名稱,“”是類名稱。通過關(guān)鍵字把實(shí)例化為。第8頁,共30頁。字段(成員變量)屬性(*) 屬性的作用就是保護(hù)字段,對字段的設(shè)置和取值進(jìn)行限定。方法事件4.4類的成員類通常包括以下三類成員:第9頁,共30頁。4.5類的成員創(chuàng)建成員變量(字段)類的特性可以通過成員變量體現(xiàn)出來。如果成員變量的修飾符是,則在創(chuàng)建類的實(shí)例時,就可以直接訪問。如果成員變量的修飾符是,則該成員變量只能在類的內(nèi)部訪問。如創(chuàng)建長方體類的成員變量方法如下。說明:通常情況下,類的成員變量都是 ; ; ; . 第10頁,共30頁。自動屬性 ; ; 2. 支持成員變量的屬性 ; ; ( 0) = 0; = ; 只讀屬性 2. 只
5、寫屬性 ; ( 0) = 0; = ; 創(chuàng)建屬性(*)說明:屬性的訪問權(quán)限都是4.5類的成員2022/7/30第11頁,共30頁。4.5類的成員例4.4 自定義一個類,在該類中定義一個可讀、可寫的屬性,然后在該屬性的訪問器中對屬性的值進(jìn)行判斷,如何的值在18到30之間為合理,對進(jìn)行賦值,否則輸出一個固定值為20;2022/7/30第12頁,共30頁。3創(chuàng)建方法 通過方法可以封裝一段功能完整的代碼,這樣有利于代碼的復(fù)用性。如計(jì)算一個圓的面積時,如果我們把計(jì)算公式封裝在一個方法中,在調(diào)用時可以通過傳遞不同的半徑參數(shù)而獲取不同的面積。創(chuàng)建方法的語法格式如下所示。作用域返回類型 方法名() 方法體;
6、4.5類的成員第13頁,共30頁。4.5 類的成員例4.5、編寫程序計(jì)算出長方體的體積。在2010中創(chuàng)建一個控制臺應(yīng)用程序。右鍵單擊項(xiàng)目名稱,在彈出的菜單中選擇“添加”/“類”命令,創(chuàng)建一個類。在類中創(chuàng)建長方體的成員變量,并創(chuàng)建計(jì)算體積的方法()。主要核心代碼: 創(chuàng)建類 ; ; ; () 定義返回值類型為型的方法 ; = * * ; ; 第14頁,共30頁。4.5 類的成員主程序核心代碼: = (); 初始化對象 = 3.50; = 2.40; = 5.50; (長方體的體積為:0(); (); 在入口程序中初始化對象,設(shè)置對象的屬性,即分別為類中的三個變量賦值,并調(diào)用()方法求得長方體體積。
7、編譯并執(zhí)行代碼,運(yùn)行結(jié)果如圖所示。第15頁,共30頁。4.6方法中的參數(shù) 參數(shù)是方法中的重要元素,基本語法格式如下所示。 作用域返回類型 方法名(數(shù)據(jù)類型 參數(shù)1,數(shù)據(jù)類型 參數(shù)2,.) 方法體; 一個方法的參數(shù)可以是一個或多個,每個參數(shù)之間用逗號分隔,每個參數(shù)必須指明具體的參數(shù)類型。 方法的參數(shù)分為引用類型和數(shù)值類型,引用類型傳遞的是變量在內(nèi)存中的地址,而不是變量的值,數(shù)值類型傳遞的是變量的值;在中引用類型有類、數(shù)組、接口和委托;數(shù)值類型有結(jié)構(gòu)體、枚舉和其它簡單數(shù)值類型等;數(shù)值類型進(jìn)行參數(shù)進(jìn)行傳遞時如果要傳遞地址,在中通常采用或者關(guān)鍵字進(jìn)行參數(shù)的傳遞。當(dāng)采用或者關(guān)鍵字進(jìn)行傳遞參數(shù)時,這個參數(shù)
8、就是原數(shù)值或者引用本身(也就是說在函數(shù)體內(nèi)對該參數(shù)的所有操作都是原數(shù)鎮(zhèn)或者引用本身)第16頁,共30頁。1、引用參數(shù)能夠?qū)⒁粋€變量帶入一個方法中進(jìn)行改變,改變完成后,再將改變后的值帶出方法(相當(dāng)于是參數(shù)的地址)。參數(shù)要求在方法外必須為其賦值,而方法內(nèi)可以不賦值。4.6 方法中的參數(shù)說明:不管是調(diào)用還是定義帶有參數(shù)的方法時,必須要在參數(shù)先前面加上第17頁,共30頁。 2、輸出參數(shù)如果你在一個方法中,返回多個相同類型的值的時候,可以考慮返回一個數(shù)組。但是,如果返回多個不同類型的值的時候,返回?cái)?shù)組就不行了,那么這個時候,我們可以考慮使用參數(shù)。參數(shù)在進(jìn)行參數(shù)傳遞前可以不對其賦值。參數(shù)不要求在方法外必須
9、為其賦值,在方法體中必須賦值,并且參數(shù)只有賦值之后才能對其進(jìn)行相關(guān)操作說明:不管是調(diào)用還是定義帶有參數(shù)的方法時,必須要在參數(shù)先前面加上4.6方法中的參數(shù)第18頁,共30頁。關(guān)鍵字和的區(qū)別關(guān)鍵字和都可以用于參數(shù)的引用方式的傳遞,并且都適合于返回多個值的應(yīng)用。它們不同之處是哪個關(guān)鍵字負(fù)責(zé)初始化參數(shù)。如果一個方法的參數(shù)被修飾,那么調(diào)用代碼在調(diào)用方法之前必須初始化參數(shù),被調(diào)用方法則可以任意選擇讀取該參數(shù),或者為該參數(shù)賦值;而如果一個方法的參數(shù)被修飾,那么調(diào)用代碼在調(diào)用該方法之前可以不初始化該參數(shù)。引用類型采用或者進(jìn)行修飾時,在采用參數(shù)進(jìn)行傳遞時傳遞的都是地址,所以對于引用類型不需要加或者關(guān)鍵字。4.6
10、 方法中的參數(shù)第19頁,共30頁。3、可變參數(shù)(*)將實(shí)參列表中跟可變參數(shù)數(shù)組類型一致的元素都當(dāng)做數(shù)組的元素去處理。可變參數(shù)必須是形參列表中的最后一個元素。4.6方法中的參數(shù)第20頁,共30頁。4.6 方法中的參數(shù)4、方法的重載(*) 方法的重載是實(shí)現(xiàn)“多態(tài)”的一種方法,方法的重載是指調(diào)用同一個方法名,但各方法中參數(shù)的數(shù)據(jù)類型、個數(shù)不同。 方法的重載必須滿足以下3個條件:方法名稱必須相同;形參個數(shù)不同;相同位置上參數(shù)的數(shù)據(jù)類型不同。說明:當(dāng)一個方法的方法名稱相同,參數(shù)的個數(shù)和相同位置上的參數(shù)的數(shù)據(jù)類型也相同時,但方法的返回值不相同時不但不能構(gòu)成方法的重載,反而會出錯。第21頁,共30頁。4.6
11、 方法中的參數(shù)例4-6創(chuàng)建一個窗體應(yīng)用程序,實(shí)現(xiàn)通過輸入圓的半徑求得圓的周長,輸入矩形的長和寬求得矩形的周長,求周長的方法采用重載的方式建立,具體做法如下: 創(chuàng)建一個窗體應(yīng)用程序。 程序界面如圖所示,其中包括五個標(biāo)簽控件、五個文本框控件和兩個按鈕控件,按照由上至下,由左自右編號。 右鍵單擊項(xiàng)目名稱,在彈出的菜單中選擇“添加”/“類”命令,創(chuàng)建一個類,類中定義兩個同名方法(),其中第一個方法帶有參數(shù)r,第二個方法帶有參數(shù)a和b,兩個方法中參數(shù)個數(shù)不同,能夠?qū)崿F(xiàn)方法重載。第22頁,共30頁。4.6 方法中的參數(shù) ( r) = 3.14; 2 * * r; ( b) 2*(); R = (1); 接
12、收文本框1的輸入數(shù)據(jù)調(diào)用類中的方法求圓的周長賦值給文本框2 2 = (s1(R); A = (3); 接收文本框3的輸入數(shù)據(jù) B = (4); 接收文本框4的輸入數(shù)據(jù)調(diào)用類中的方法求矩形的周長賦值給文本框5 5 = (s1();第23頁,共30頁。4.7 構(gòu)造函數(shù)1構(gòu)造函數(shù)(*)構(gòu)造函數(shù)是一種特殊的函數(shù),用于初始化類和創(chuàng)建類的實(shí)例。構(gòu)造函數(shù)具有與類相同的名稱,它通常初始化新對象的數(shù)據(jù)成員。它是在進(jìn)行類的實(shí)例化時首先執(zhí)行的函數(shù)。構(gòu)造與普通方法相比,有以下兩點(diǎn)不同:構(gòu)造函數(shù)的名稱必須與類名相同,并且是一個類可以有一個或多個構(gòu)造函數(shù);構(gòu)造函數(shù)不能有返回類型(包括類型)構(gòu)造方法中不能使用語句構(gòu)造函數(shù)的
13、聲明語法格式為:類名(數(shù)據(jù)類型 參數(shù)1,數(shù)據(jù)類型 參數(shù)2,.) 函數(shù)體;說明:當(dāng)一個類沒有顯示地定義一個構(gòu)造函數(shù)時,該類有一個默認(rèn)的無參數(shù)的構(gòu)造函數(shù),但當(dāng)一個類顯示的定義一個構(gòu)造函數(shù)時,這個默認(rèn)的構(gòu)造函數(shù)就不存在了。說明:在同一個類中一個構(gòu)造函數(shù)調(diào)用另外一個構(gòu)造函數(shù)是通過在構(gòu)造函數(shù)的后面加上:(參數(shù)列表)來實(shí)現(xiàn)的第24頁,共30頁。4.7 構(gòu)造函數(shù)例4-7定義一個直線類和一個類,這直線類有兩個構(gòu)造函數(shù),其參數(shù)分別為x1122(代表兩個點(diǎn)的坐標(biāo))和 p1、p2 (p1和p2分別為類型);由兩字段x,y組成。另外類有一個計(jì)算器其長度的方法。第25頁,共30頁。成員變量與局部變量重名時,如何調(diào)用成員
14、變量?如何在類中調(diào)用自己的成員方法?如何在構(gòu)造方法中,調(diào)用重載的構(gòu)造方法?這些問題關(guān)鍵字都可以解決!4.8 關(guān)鍵字第26頁,共30頁。1、訪問屬性通過關(guān)鍵字可以明確地去訪問一個類的屬性,解決與局部變量名稱沖突問題。2、訪問成員方法在類中調(diào)用自己的成員方法,也可以使用關(guān)鍵字,通過“.方法名”的方式調(diào)用3、訪問構(gòu)造方法在同一個類中一個構(gòu)造函數(shù)調(diào)用另外一個構(gòu)造函數(shù)是通過在構(gòu)造函數(shù)的后面加上:(參數(shù)列表)來實(shí)現(xiàn)的4、在中通常采用.產(chǎn)生代碼提示功能4.8 關(guān)鍵字第27頁,共30頁。4.9 析構(gòu)函數(shù)2析構(gòu)函數(shù)(只做了解,可以不用理會)析構(gòu)函數(shù)是在類被刪除之前最后執(zhí)行的函數(shù),用來釋放基于該類創(chuàng)建實(shí)例所占用的資源。在語言中每個類都有一個默認(rèn)的析構(gòu)函數(shù),用來在對象被清除時釋放所分配的內(nèi)存資源。析構(gòu)函數(shù)的表示方法為: .()(對象已
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鋁合金供應(yīng)鏈合作協(xié)議
- 醫(yī)療器械銷售代表聘用協(xié)議
- 環(huán)衛(wèi)工程塔吊司機(jī)聘用協(xié)議
- 醫(yī)師雇傭合同延長期
- 專業(yè)房產(chǎn)中介合同模版
- 森林公園房產(chǎn)買賣合同樣本
- 商業(yè)裝修防火封堵施工協(xié)議
- 港口木地板安裝合同
- 交通樞紐租賃合同格式
- 生態(tài)外墻綠化施工協(xié)議
- 部編版語文九年級上冊單元復(fù)習(xí)課教案
- 孕酮檢驗(yàn)報告
- 預(yù)防出生缺陷
- 安徽省合肥市廬陽區(qū)2023-2024學(xué)年三年級上學(xué)期期末科學(xué)試題
- 2023高考作文素材:信息時代的媒介素養(yǎng)-
- 政府權(quán)力的定義、來源與行使
- 群口相聲《酒令》
- 配電網(wǎng)工程施工方案模板
- 2024年高二語文選必中文言整理教師版(《屈原列傳》《過秦論》《蘇武傳》《伶官傳序》)
- (期末押題卷)期末綜合測試預(yù)測卷-2023-2024學(xué)年六年級上學(xué)期科學(xué)高頻易錯期末提高必刷卷(蘇教版)
- 2024年電焊工安全技能操作及理論知識考試題庫(附含答案)
評論
0/150
提交評論