程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java interface的兩個經典用法

java interface的兩個經典用法

編輯:關於JAVA

java interface的兩個經典用法。本站提示廣大學習愛好者:(java interface的兩個經典用法)文章只能為提供參考,不一定能成為您想要的結果。以下是java interface的兩個經典用法正文


本文為年夜家分享了java interface的兩個經典用法,供年夜家參考,詳細內容以下

1.Java多態接口靜態加載實例

編寫一個通用法式,用來盤算沒一種交通對象運轉1000千米所需的時光,已知每種交通對象的參數都為3個整數A、B、C的表達式。現有兩種對象:Car和Plane,個中Car的速度運算公式為:A+B+C。須要編寫三個類:ComputeTime.java,Palne.java,Car.java和接口Common.java。請求在將來假如增長第3中交通對象的時刻,不用修正 之前的任何法式,只須要寫新的交通對象的法式。其運轉進程以下: 

從敕令行輸出ComputeTime的四個參數,第一個是交通對象的類型,第2、3、四個參數分離是整數A、B、C。舉例以下: 

盤算Plane的時光:“Plane 20 30 40”
盤算Car的時光:"Car 23 34 45" 

假如第3中交通對象為Ship,則須要編寫Ship.java,運轉時輸出:"Ship 22 33 44" 

提醒:充足應用接口的概念,接口對象充任參數。 

實例化一個對象的別的一中方法:Class.forName(str).newInstance();例如須要實例化 

 一個Plane對象的話,則只需挪用Class.forName("Plane").newInstance()即可。 

代碼: 

1. ComputTime. java 請確保輸出准確,個中沒有捕獲NumberFromatException 

import CalTime.vehicle.all.Common;
import java .lang.*;
public class ComputeTime {
public static void main(String args[]) {
System.out.println(“交通對象: “+args[0]);
System.out.println(” 參數A: “+args[1]);
System.out.println(” 參數B: “+args[2]);
System.out.println(” 參數C: “+args[3]);
double A=Double.parseDouble(args[1]);
double B=Double.parseDouble(args[2]);
double C=Double.parseDouble(args[3]);
double v,t;
try {
Common d=(Common) Class.forName(“CalTime.vehicle.”+args[0]).newInstance();
v=d.runTimer(A,B,C);
t=1000/v;
System.out.println(“均勻速度: “+v+” km/h”);
System.out.println(“運轉時光:”+t+” 小時”);
} catch(Exception e)  {
System.out.println(“class not found”);
}
}
}

2.Plane.java  

package CalTime.vehicle;
import CalTime.vehicle.all.Common;
public class Plane implements Common {
public double runTimer(double a, double b, double c) {
return (a+ b + c);
}
}

3. Car.java  

package CalTime.vehicle;
import CalTime.vehicle.all.Common;
public class Car implements Common {
public double runTimer(double a, double b, double c) {
return ( a*b/c );
}
}

4.Common.java  

package CalTime.vehicle.all;
public interface Common {
double runTimer(double a, double b, double c);
}

一次運轉成果: 

C:\ java> java ComputeTime Car 100 45 67
交通對象: Car
參數A: 100
參數B: 45
參數C: 67
均勻速度: 67.16417910447761 km/h
運轉時光:14.88888888888889 小時 

C:\ java > java ComputeTime Plane 130 45 67
交通對象: Plane
參數A: 130
參數B: 45
參數C: 67
均勻速度: 242.0 km/h
運轉時光:4.132231404958677 小時 

該示例演示了接口的經典用法,Thinking in java對此也做出了深入的剖析,可以檢查下。 

2.接口作為辦法的參數傳遞。 

示例:

interface Extendbroadable{
public void inPut();
}
class KeyBroad   implements Extendbroadable{
public void inPut(){
System.out.println(“\n hi,keybroad has be input into then mainbroad!\n”);
}
}
class NetCardBroad   implements Extendbroadable{
public void inPut(){
System.out.println(“\n hi,netCardBroad has be input into then mainbroad!\n”);
}
}
class CheckBroad{
public void getMainMessage(Extendbroadable ext){
ext.inPut();
}
}
public class InterfaceTest01{
public   static void main(String []args){
KeyBroad kb=new KeyBroad();
NetCardBroad ncb=new NetCardBroad();
CheckBroad cb=new CheckBroad();
cb.getMainMessage(kb);
cb.getMainMessage(ncb);
 
}
}

可以將接口類型的參數作為辦法參數,在現實應用時可以將完成了接口的類傳遞給辦法,前方法或依照重寫的准繩履行,現實挪用的是完成類中的辦法代碼體。如許便依據傳出去的參數的分歧而完成分歧的功效。 

主要的是,當我今後須要別的一個對象而且具有本身的辦法體的時刻,我們不用改寫原類,只須要新的類完成接口便可。

以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved