成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細介紹Java接口的作用

開發 后端
本文介紹的是JAVA接口的作用,希望對你有幫助,一起來看。

今天和同事好好的討論了java接口的原理和作用,發現原來自己的對接口的理解僅僅是局限在概念的高度抽象上,覺得好像理解了但是不會變化應用其實和沒有理解差不多。以前看一個帖子說學習一個東西不管什么時候都要帶著“這個東西是什么?”、“這個東西有什么作用?”和“這個東西怎樣用?”三個問題,這三個問題回答上來了說明你對這個事物的理解達到了一定的高度。

今天還有一個比較深的經驗是要學習到知識就要多和人交流。就像以前某個管理人員說得“要瘋狂的交流”。

現在對于今天學到的接口部分做一個詳細地總結:

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

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

用來計算每一種交通工具運行1000公里所需的時間,已知每種交通工具的參數都是3個整數A、B、C的表達式。現有兩種工具:

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. }  

以前看過一個求形狀的題目就是有兩個圓形求交集現在定義了兩種情況問要是擴展大別的情況應當怎么設計,想了很久不得其解,現在忽然覺得接口通殺矣~

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. }  

希望本文的介紹,能給你帶來幫助。

【編輯推薦】

  1.  揭開Java 語言中的IO系統的神秘面紗
  2. 詳細介紹java中的集合框架
  3. Java正則表達式應用總結
  4. 為你介紹Java中引用類型和原始類型的區別
  5. 詳細解析Java中的main函數
責任編輯:于鐵 來源: 互聯網
相關推薦

2011-07-22 16:37:01

java接口

2011-07-22 13:00:46

java

2009-12-25 16:09:14

NGN用戶接入技術

2010-03-18 14:27:53

Java Thread

2009-06-11 10:00:05

Java Socket

2011-07-11 11:02:12

JAVA集合框架

2011-07-22 17:41:02

java

2010-03-18 18:20:34

Java Socket

2011-07-11 15:02:54

枚舉

2011-07-11 17:33:25

JAVA可移植性

2011-07-21 13:51:38

java

2011-07-21 14:15:08

java

2011-07-21 15:44:33

Java內部類

2021-05-29 07:16:13

JavaSerializabl接口

2011-06-09 11:23:18

JAVAIO

2011-07-22 16:50:05

JAVA

2011-07-04 10:32:37

JAVA

2010-04-06 13:33:41

Oracle服務

2009-06-18 09:47:14

Spring的核心

2011-11-29 12:13:21

VPN
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区在线播放 | 97超碰人人 | 亚洲人成人一区二区在线观看 | 亚洲国产一区在线 | 国产精品成人一区 | 中文字幕在线免费视频 | 国产黄色在线观看 | 99re在线视频 | 亚洲一区二区免费 | 久久久91精品国产一区二区三区 | 99国产精品久久久久老师 | 日韩视频中文字幕 | 一区在线观看 | 久久久久久99 | 99热播放| 国产精品日韩高清伦字幕搜索 | 99免费在线观看 | 午夜影院官网 | 久久免费视频观看 | 欧美一区二区三区在线视频 | 国产日韩精品在线 | 三极网站 | 免费一区在线 | 尹人av| 91精品免费视频 | 国产男女视频网站 | 亚洲精品在线免费观看视频 | 夜操| 国产精品成人一区二区三区 | 国产成人在线免费 | 91精品国产综合久久久久久 | 成人在线视频免费观看 | 日本免费黄色一级片 | 国产激情偷乱视频一区二区三区 | 亚洲综合大片69999 | 人人看人人搞 | 最新黄色毛片 | 超碰人人在线 | 免费成人av | 成人在线观看网址 | 国产成人久久精品 |