資源描述:
《12.接口與泛型》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、第12章接口與泛型信息管理與信息系統(tǒng)班12.1接口在軟件開(kāi)發(fā)過(guò)程中,有時(shí)我們編寫(xiě)的程序需要提供給外部商家進(jìn)行二次開(kāi)發(fā)或者其它的服務(wù),但我們又不希望他們看見(jiàn)我們程序的內(nèi)部細(xì)節(jié),在此情況下,我們可以把我們的產(chǎn)品做成組件,用接口描述組件對(duì)外提供的服務(wù)。組件和組件之間、組件和客戶(hù)之間都通過(guò)接口進(jìn)行交互,所以接口在軟件設(shè)計(jì)過(guò)程中還是一個(gè)很重要的知識(shí)。12.1.1接口的含義接口(interface)用來(lái)定義一種程序的協(xié)定。實(shí)現(xiàn)接口的類(lèi)與接口的定義嚴(yán)格一致。接口可以包含方法、屬性、事件和索引器。接口本身不提供它所定義的成員的實(shí)現(xiàn)。接
2、口只指定實(shí)現(xiàn)該接口的類(lèi)或接口必須提供的成員。所以接口不能被實(shí)例。12.1.2定義接口定義接口使用的關(guān)鍵字為interface,其一般形式為:[修飾符]interface接口名稱(chēng)[:基接口列表]{接口體成員列表}其中,允許使用的修飾符有:public、protected、internal、private。12.1.2定義接口【實(shí)作任務(wù)】例12.1定義一個(gè)客車(chē)類(lèi)的接口,該接口向外提供一個(gè)此車(chē)重量、車(chē)牌號(hào)的接口和一個(gè)輸出車(chē)相關(guān)信息方法的接口interfaceIPasstrain{intWeight{get;set;}stri
3、ngPlate{get;set;}voidShowinfo();}12.1.3實(shí)現(xiàn)接口定義類(lèi),實(shí)現(xiàn)接口IPasstrainclassPasstrain:IPasstrain//類(lèi)名為Passtrain(客車(chē)){privateintweight;privatestringplate;//以下實(shí)現(xiàn)接口中的Weight屬性publicintWeight{get{returnweight;}//提供對(duì)weight的讀權(quán)限set{weight=value;}//提供對(duì)weight的寫(xiě)權(quán)限}//以下實(shí)現(xiàn)接口中的Plate屬性pub
4、licstringPlate{get{returnplate;}//提供對(duì)plate的讀權(quán)限set{plate=value;}//提供對(duì)plate的寫(xiě)權(quán)限}//以下實(shí)現(xiàn)接口中的Showinfo方法publicvoidShowinfo(){System.Console.WriteLine("我是客車(chē)");System.Console.WriteLine("我的重量是:"+Weight);}}12.1.3實(shí)現(xiàn)接口測(cè)試代碼classTest{staticvoidMain(){IPasstrainp=newPasstrain(
5、);p.Weight=1000;p.Showinfo();}}運(yùn)行結(jié)果12.2泛型12.2.1泛型概述泛型是一種類(lèi)型占位符,或稱(chēng)之為類(lèi)型參數(shù)。我們?cè)诙x一個(gè)方法時(shí),變量的值可以作為參數(shù),但其實(shí)這個(gè)變量的類(lèi)型本身也可以作為參數(shù)。泛型允許我們?cè)谡{(diào)用的時(shí)候再指定這個(gè)類(lèi)型參數(shù)是什么。12.2.2泛型的使用使用泛型可以定義泛型類(lèi)、泛型接口、泛型方法等。publicclassstudent{voidcompare(Tnum1,Tnum2){Tnum3=num1;num1=num2;num2=num3;}}聲明類(lèi)的對(duì)象:stu
6、dentstu=newstudent();inta=3,b=5;stu.compare(a,b);本章小結(jié)本章通過(guò)一些小實(shí)例的分析和實(shí)現(xiàn),講解了C#中接口和泛型的使用方法。