亚洲天堂一级片-亚洲天堂三区-亚洲天堂久久精品成人-亚洲天堂毛片-久久国产欧美日韩高清专区-久久国产欧美日韩精品免费

北京北大青鳥校區解讀:Java接口的原理和作用

北京北大青鳥校區學術部老師提供:

什么是JAVA接口?
北大青鳥校區專家講解:接口的概念其實并不難理解,接口關鍵字Interface,在使用時可以只定義函數體而不需要具體的實現。再類的繼承過程中可以實現多個接口而取代了類的多繼承。使用接口其實就有點像實現虛函數的調用一樣,用繼承接口的子類實例化聲名得借口就可以通過接口調用子類內部接口定義的函數。使用這種接口方式編程,如果業務邏輯發生變化需要新增類多方法,就可以再不改變原來已經寫好的代碼基礎上新增一個類來實現接口中定義的函數來實現。具體方法請看下面兩個例子:(北京北大青鳥校區

1、JAVA多態接口動態加載實例

用來計算每一種交通工具運行1000公里所需的時間,已知每種交通工具的參數都是3個整數A、B、C的表達式,F有兩種工具:(北京北大青鳥校區
Car 和Plane,其中Car 的速度運算公式為:A*B/C
Plane 的速度運算公式為:A+B+C。

需要編寫三類:ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未來如果增加第3種交通工具的時候,不必修改以前的任何程序,只需要編寫新的交通工具的程序。其運行過程如下,從命令行輸入ComputeTime的四個參數,第一個是交通工具的類型,第二、三、四個參數分別時整數A、B、C,舉例如下:(北京北大青鳥校區
計算Plane的時間:"java ComputeTime Plane 20 30 40"
計算Car007的時間:"java ComputeTime Car007 23 34 45"
如果第3種交通工具為Ship,則只需要編寫Ship.java,運行時輸入:"java ComputeTime Ship 22 33 44"
提示:充分利用接口的概念,接口對象充當參數。
實例化一個對象的另外一種辦法:Class.forName(str).newInstance();例如需要實例化一個Plane對象的話,則只要調用Class.forName("Plane").newInstance()便可。(北京北大青鳥校區
Java代碼:
1. import CalTime.vehicle.all.Common; 
2. import java.lang.*; 
3. public interface Common ...{ 
4. double runTimer(double a, double b, double c); 
5. } 
6. public class Plane implements Common ...{ 
7. public double runTimer(double a, double b, double c) ...{ 
8. return (a+ b + c); 
9. } 
10. } 
11. public class Car implements Common ...{ 
12. public double runTimer(double a, double b, double c) ...{ 
13. return ( a*b/c ); 
14. } 
15. } 
16. public class ComputeTime ...{ 
17. public static void main(String args[]) ...{ 
18. System.out.println("交通工具: "+args[0]); 
19. System.out.println(" 參數A: "+args[1]); 
20. System.out.println(" 參數B: "+args[2]); 
21. System.out.println(" 參數C: "+args[3]); 
22. double A=Double.parseDouble(args[1]); 
23. double B=Double.parseDouble(args[2]); 
24. double C=Double.parseDouble(args[3]); 
25. double v,t; 
26. try ...{ 
27. Common d=(Common) Class.forName("CalTime.vehicle."+args[0]).newInstance(); 
28. v=d.runTimer(A,B,C); 
29. t=1000/v; 
30. System.out.println("平均速度: "+v+" km/h"); 
31. System.out.println("運行時間:"+t+" 小時"); 
32. } catch(Exception e) ...{ 
33. System.out.println("class not found"); 
34. } 
35. } 
36. }
以前看過一個求形狀的題目就是有兩個圓形求交集現在定義了兩種情況問要是擴展大別的情況應當怎么設計,想了很久不得其解,現在忽然覺得接口通殺矣~(北京北大青鳥校區

2、JAVA接口作為參數傳遞

可以將借口類型的參數作為方法參數,在實際是使用時可以將實現了接口的類傳遞給方法,后方法或按照重寫的原則執行,實際調用的是實現類中的方法代碼體,這樣便根據傳進屋的參數的不同而實現不同的功能。重要的是,當我以后徐要林外一個對象并且擁有接受說生命的方法的時候的時候,我們不必須原類,只需新的類實現借口即可。(北京北大青鳥校區
Java代碼:
1. import java.lang.*; 
2. interface Extendbroadable ...{ 
3. public void inPut(); 
4. } 
5. class KeyBroad implements Extendbroadable ...{ 
6. public void inPut() ...{ 
7. System.out.println(" hi,keybroad has be input into then mainbroad! "); 
8. } 
9. } 
10. class NetCardBroad implements Extendbroadable ...{ 
11. public void inPut() ...{ 
12. System.out.println(" hi,netCardBroad has be input into then mainbroad! "); 
13. } 
14. } 
15. class CheckBroad ...{ 
16. public void getMainMessage(Extendbroadable ext)...{ 
17. ext.inPut(); 
18. } 
19. } 
20. public class InterfaceTest01 ...{ 
21. public static void main(String []args) ...{ 
22. KeyBroad kb=new KeyBroad(); 
23. NetCardBroad ncb=new NetCardBroad(); 
24. CheckBroad cb=new CheckBroad(); 
25. cb.getMainMessage(kb); 
26. cb.getMainMessage(ncb); 
27. } 
28. }
希望本文的介紹,能給你帶來幫助。(北京北大青鳥校區


 

北大青鳥網上報名
北大青鳥招生簡章
主站蜘蛛池模板: 黄色网址www| 国内精品小视频福利网址 | 国产成人精品高清不卡在线 | 国产亚洲精品成人婷婷久久小说 | 九九在线精品视频xxx | 99久久免费精品 | 久久久欧美综合久久久久 | 国产欧美日韩精品a在线观看 | 午夜爽爽 | 成人99国产精品一级毛片 | 另类专区国产在线视频 | 亚洲天堂视频在线观看免费 | 九九九九热精品免费视频 | 日韩亚洲欧美一区二区三区 | 在线成人97观看 | 日本久久久久一级毛片 | 欧美日韩精品一区二区视频在线观看 | 亚洲欧美视频在线观看 | 国产日产欧产精品精品推荐在线 | 国产一区在线免费观看 | 日本精高清区一 | 国产日产高清欧美一区二区三区 | 日本三级全黄三级a | 亚洲午夜精品一级在线播放放 | 美女扒开双腿让男人桶 | 成人国产片免费 | 一区在线免费观看 | 玖玖香蕉视频 | 成人一区二区免费中文字幕 | 亚洲日本综合 | 情侣偷偷看的羞羞视频网站 | 亚洲精品久久久久影 | 九草视频 | 日韩在线看片中文字幕不卡 | 在线视频一区二区日韩国产 | 久色精品 | 欧美国产大片 | 成人久久久久久 | 91成人爽a毛片一区二区 | 欧美日韩ay在线观看 | 寡妇一级a毛片免费播放 |