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