金英華 周園園
摘 要: 排序是程序員在使用計(jì)算機(jī)編程時(shí)常常遇到的一種算法,其目的就是將一組“無(wú)序”的序列經(jīng)過(guò)運(yùn)算重新排列為“有序”的序列。本文使用面向接口程序,通過(guò)定義接口、使用接口設(shè)計(jì)并實(shí)現(xiàn)了排序系統(tǒng),從而快捷、準(zhǔn)確、方便地查找、使用數(shù)據(jù)。
關(guān)鍵詞:排序系統(tǒng);面向接口程序;interface;implements
1、接口的定義和實(shí)現(xiàn)
為了方便軟件的開(kāi)發(fā),程序要求繼承類的層次清晰,全部的設(shè)計(jì)工作都可以使用抽象類來(lái)完成。但是Java不支持多重繼承,如果我們?cè)谠O(shè)計(jì)時(shí)一個(gè)類同時(shí)繼承兩個(gè)或兩個(gè)以上的父類時(shí),抽象類作為父類就顯現(xiàn)不能得心應(yīng)手。這時(shí),需要接口的定義、使用來(lái)實(shí)現(xiàn)多重繼承。
接口是一種“純粹”的抽象類,只包含了抽象方法和常量的定義。這些抽象方法必須由其它子類來(lái)實(shí)現(xiàn)(implements),才能賦予方法新的功能。
(1) 定義接口格式:
[訪問(wèn)修飾符] interface 接口名
{
[訪問(wèn)修飾符] [存儲(chǔ)修飾符]靜態(tài)常量;
[訪問(wèn)修飾符] [存儲(chǔ)修飾符]抽象方法;
}
(2)引用接口格式:
子類實(shí)現(xiàn)接口時(shí)使用implements關(guān)鍵字,如果想實(shí)現(xiàn)多個(gè)接口,接口名之間用逗號(hào)隔開(kāi)。
格式為:
[訪問(wèn)修飾符] [存儲(chǔ)修飾符] class 類名 implements 接口名1,接口名2……
2、接口與抽象類的區(qū)別
1)接口是一種特殊的類,可以把它當(dāng)做抽象類,接口的所有的方法都是抽象的,只有聲明沒(méi)有具體實(shí)現(xiàn)。
2)子類用關(guān)鍵字“implements”實(shí)現(xiàn)接口;用關(guān)鍵字“extends”繼承抽象類。
3) Java不支持多重繼承,只能繼承一個(gè)抽象類,但可以實(shí)現(xiàn)多個(gè)接口,接口體現(xiàn)了Java語(yǔ)言類的重用性,它的實(shí)質(zhì)也是繼承。
4) 定義了一個(gè)接口,子類實(shí)現(xiàn)接口時(shí),必須重寫(xiě)這個(gè)接口里的所有方法;而抽象類的子類可以不重寫(xiě)抽象父類的所有方法。
3、接口的應(yīng)用
本實(shí)例使用接口程序設(shè)計(jì)實(shí)現(xiàn)排序系統(tǒng)。
程序中定義了接口paixun,在接口中定義了方法public double pai_xun();,方法中只是指定了返回值是Double型,沒(méi)有具體的實(shí)現(xiàn)。通常也可以在接口中定義的常量,例如:double PI=3.14,,常量默認(rèn)是公共的、靜態(tài)的。在主類Jkpaixun中的main( )方法中實(shí)現(xiàn)paixun接口,重寫(xiě)public double pai_xun();方法public double ?pai_xun(){int n=5;double temp;double db1[]=new double[n];db1[0]=x1;db1[1]=x2;db1[2]=x3;db1[3]=x4;db1[4]=x5;for (int i=0;i<n-1;i++){for (int j=i+1;j<n;j++){if(db1[i]<db1[j]){temp=db1[i];db1[i]=db1[j];db1[j]=temp;}}}。
在主類中實(shí)現(xiàn)接口中定義的方法時(shí)指定方法屬性一定要是public,因?yàn)榻涌谥卸x的方法默認(rèn)屬性為public,實(shí)現(xiàn)這個(gè)接口的子類重寫(xiě)該方法必須指定屬性為public,否則編譯程序時(shí)會(huì)有錯(cuò)誤信息提示,原因是重寫(xiě)的方法不能比被重寫(xiě)的方法擁有更嚴(yán)格的訪問(wèn)權(quán)限。
設(shè)計(jì)程序要實(shí)現(xiàn)如圖的運(yùn)行結(jié)果:
參考文獻(xiàn)
[1]李卓玲.Java程序設(shè)計(jì)實(shí)用教程.大連理工大學(xué)出版社,2005.
[2] 遲勇.Java語(yǔ)言程序設(shè)計(jì).大連理工大學(xué)出版社,2013.
[3] 遲勇.Java語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)及實(shí)訓(xùn)指導(dǎo).大連理工大學(xué)出版社,2013.