靜態(tài)成員屬性與索引器_第1頁(yè)
靜態(tài)成員屬性與索引器_第2頁(yè)
靜態(tài)成員屬性與索引器_第3頁(yè)
靜態(tài)成員屬性與索引器_第4頁(yè)
靜態(tài)成員屬性與索引器_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

教學(xué)回顧一、面向?qū)ο蟪绦蛟O(shè)計(jì)開(kāi)發(fā)的一般步驟:面向?qū)ο蠓治觯∣OA)需求分析(以對(duì)象為基本單位)面向?qū)ο笤O(shè)計(jì)(OOD)UML面向?qū)ο缶幊蹋∣OP)屬性+name:string+sex:string-age:float服務(wù)(動(dòng)作)+Input:void+Show:voidPerson(類(lèi)名)面向具象寫(xiě)抽象萬(wàn)事萬(wàn)物皆對(duì)象二、面向?qū)ο缶幊痰囊话悴襟E:1、選擇項(xiàng)目類(lèi)型(控制臺(tái)/WINFORM/網(wǎng)站/組件)2、類(lèi)的定義(與主函數(shù)所在類(lèi)并列或者引用基類(lèi)庫(kù))3、在主函數(shù)中設(shè)計(jì)程序邏輯。4、編輯調(diào)試

教學(xué)回顧三、類(lèi)的聲明1.格式如下:(類(lèi)修飾符)class〈類(lèi)名稱(chēng)〉{}[訪問(wèn)修飾符]類(lèi)型變量名1聲明;[訪問(wèn)修飾符]類(lèi)型變量名2聲明;…//類(lèi)的構(gòu)造函數(shù)與析構(gòu)函數(shù)[訪問(wèn)修飾符]返回類(lèi)型<方法的名稱(chēng)([參數(shù)]){…//要執(zhí)行的操作;}//聲明類(lèi)的變量//聲明類(lèi)的方法//聲明類(lèi)構(gòu)造與析構(gòu)函數(shù)//聲明類(lèi)的名稱(chēng)教學(xué)回顧四、對(duì)象的應(yīng)用:

利用new實(shí)例化具體化一個(gè)類(lèi),產(chǎn)生一個(gè)對(duì)象。對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。類(lèi)的對(duì)象是該類(lèi)的某一特定實(shí)體,即類(lèi)類(lèi)型的變量。

格式:類(lèi)名對(duì)象名=new構(gòu)造函數(shù)();

Employeee1=new

Employee();

Employeee2=newEmployee(30);="JeffreyRichter";e1.age=36;

如何解決錯(cuò)誤輸入?

教學(xué)回顧e1.age=-20對(duì)象實(shí)例化內(nèi)存狀態(tài)圖&e1&e1.agee1.Input()e1.Show()Employee()Employee(intpara1)棧內(nèi)存e2.agee2.Input()e2.Show()Employee()Employee(intpara1)堆內(nèi)存36JeffreyRichter1Employee.id思考題定義一個(gè)學(xué)生stuId統(tǒng)計(jì)已經(jīng)錄入的學(xué)生人數(shù),如何實(shí)現(xiàn)?如果將學(xué)生的年齡輸入了16-22歲應(yīng)該如何實(shí)現(xiàn)?一、類(lèi)的靜態(tài)成員1、靜態(tài)的數(shù)據(jù)成員:格式:static[訪問(wèn)修飾符]成員名;2、靜態(tài)的構(gòu)造函數(shù)格式:staticpublic類(lèi)名;3、靜態(tài)的方法。格式:static[訪問(wèn)修飾符]成員函數(shù)名()

{}注:

1、一旦建立靜態(tài)域,無(wú)論建立多少類(lèi)的實(shí)例,內(nèi)存中只存在一個(gè)靜態(tài)數(shù)據(jù)的拷貝

2、靜態(tài)的構(gòu)造函數(shù)與靜態(tài)的方法只能引用類(lèi)的靜態(tài)的數(shù)據(jù)成員。classEmployee{privateStringName;//fieldisnowprivateprivateInt32Age;//fieldisnowprivatepublicStringGetName(){return(Name);}publicvoidSetName(Stringvalue){Name=value;}publicInt32GetAge(){return(Age);}publicvoidSetAge(Int32value){if(value<=0)

throw(new

ArgumentException("Agemustbegreaterthan0");Age=value;}}

問(wèn)題解決!上述方法中所示的抽象數(shù)據(jù)的方式有兩個(gè)缺點(diǎn)。首先,因?yàn)楸仨殞?shí)現(xiàn)額外的函數(shù),所以需要編寫(xiě)更多的代碼;其次,使用此類(lèi)型的用戶(hù)必須調(diào)用方法,而不是簡(jiǎn)單地引用一個(gè)字段名。e.SetAge(36);//Updatestheagee.SetAge(-5);//Throwsanexception一、屬性與索引器1、定義:屬性是類(lèi)的一種數(shù)據(jù)結(jié)構(gòu),它是讀寫(xiě)類(lèi)中私有和受保護(hù)的數(shù)據(jù)的一種途徑。屬性的讀寫(xiě)通過(guò)get和set訪問(wèn)器進(jìn)行。2、舉例:classEmployee

{privatestring_Name; privateInt32_Age; publicstringName {get{return(_Name);}

set{_Name=value;}}

publicInt32Age {get{return(_Age);}

set{if(value<=0)

throw(new

ArgumentException(“Agemustbegreaterthan0”);

_Age=value;}}}類(lèi)使用了與例一中的類(lèi)功能完全相同的屬性。您可以看到,屬性稍微簡(jiǎn)化了代碼,更重要的是,它們?cè)试S調(diào)用如下方式編寫(xiě)代碼:

e.Age=36;//Updatestheage

e.Age=-5;//Throwsanexception

利用性質(zhì)可以讓客戶(hù)訪問(wèn)類(lèi)的私有狀態(tài),就好象訪問(wèn)public的成員變量一樣。而這實(shí)際上是通過(guò)類(lèi)的成員方法的訪問(wèn)來(lái)實(shí)現(xiàn)的。

Form1.Height=15;

通過(guò)使用性質(zhì)的方法,可以將類(lèi)的狀態(tài)與訪問(wèn)狀態(tài)的方法分離,從而使設(shè)計(jì)者可以自由地按需要改變對(duì)象的內(nèi)部狀態(tài),而客戶(hù)代碼不需要改變。使用get和set訪問(wèn)器直接訪問(wèn)間接訪問(wèn)隱式調(diào)用學(xué)生練習(xí)定義一個(gè)學(xué)生類(lèi),對(duì)類(lèi)的數(shù)據(jù)成員設(shè)置屬性。2、索引器

1、定義:類(lèi)的索引器與屬性功能類(lèi)似,它可以把類(lèi)虛擬為一個(gè)數(shù)組,可以按照數(shù)組的方式對(duì)類(lèi)的數(shù)據(jù)進(jìn)行訪問(wèn),從而實(shí)現(xiàn)對(duì)數(shù)據(jù)的保護(hù)和隱藏。索引器的讀寫(xiě)也是通過(guò)get和set訪問(wèn)進(jìn)行,但它們需要參數(shù)。索引器3-1usingSystem;class

IndexerExample{

public

string[]stringlist=new

string[10];

public

string

this[intindex] {

get

{

return

stringlist[index]; }

set

{

stringlist[index]=value.ToString(); } }}class

DemoIndexer{

static

void

Main() {

IndexerExample

IndexTest=new

IndexerExample(); IndexTest.stringlist[1]="Sam";

IndexTest[2]="Tom"; System.Console.WriteLine(“IndexTest[1]is是{0}\nIndexTest[2]is是{1}",IndexTest[1],IndexTest[2]);

Console.ReadLine(); }}已調(diào)用索引器索引器傳統(tǒng)賦值總結(jié)類(lèi)的靜態(tài)成員一旦建立靜態(tài)域,無(wú)論建立多少類(lèi)的實(shí)例,內(nèi)存中只存在一個(gè)靜態(tài)數(shù)據(jù)的拷貝。類(lèi)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論