接口的作用就是把使用接口的人和實現接口的人分開,實現接口的人不必要關心誰去使用,而使用接口的人也不用關心誰實現的接口,由接口將他們聯系在一起。以上像一段繞口令,那么通過下面的幾段程序解釋:
專注于為中小企業提供網站設計制作、做網站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業江都免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了數千家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
1、以生產和使用一臺計算機為例,首先,我們定義了一個顯卡的接口,他里面有顯示功能和獲取顯卡名稱的功能:
interface VidioCard
{
void display();
String getName();
}
2、顯卡的生產者來了,他必須實現接口中定義的所有方法,也可以自己增添若干方法:
class HaolongVidio implements VidioCard
{
String name="Haolong's vidiocard";
void setName(String name){
this.name=name;
}
public void display(){
System.out.println("The Haolong's vidiocard is running!!");
}
public String getName(){
return name;
}
};
顯卡制造商生產出了顯卡,并且通過setName方法貼上了自己的商標,而通過getName方法可以讓使用者知道這塊顯卡的制造商。
3、現在顯卡已經生產出來了,但是我們還需要一塊主板,把生產出來的顯卡插到主板上才能夠使用,那么我們去買主板:
class MainBorad
{
String cpuname;
VidioCard vc;
void setCPU(String cpuname){
this.cpuname=cpuname;
}
void setVidioCard(VidioCard vc){
this.vc=vc;
}
void run(){
System.out.println("wudi-mainbord!");
System.out.println(vc.getName());
vc.display();
System.out.println("mainbord is running successful!");
}
};
這是主板廠商生產的主板,這也就是我們所說的接口的使用者,在他生產主板的時候并不知道用戶使用的是哪塊顯卡(程序中這樣理解:Mainborad這個類只知道接口VidioCard中有哪些方法,但是并不知道接口的實現類HaolongVidio是怎么去實現接口的,也就是生產主板的廠商并沒有必要考慮顯卡是哪個廠商的,他要做的只是根據接口把顯卡插槽做好,接口里沒有實現的方法相當于插槽),但是他留出來了顯卡的插槽(插槽就是接口),也就是他不關心誰實現的接口,但是他可以使用接口,預留出顯卡的插槽讓用戶去選購顯卡。
4、現在我們用戶開始組裝計算機了:
public class ChengDuActor
{
public static void main(String [] args){
HaolongVidio hv=new HaolongVidio();//買了一塊HaolongVidio顯卡
MainBorad mb=new MainBorad();//買了一塊主板
mb.setCPU("Intel");//買的是Inter主板
mb.setVidioCard(hv);//把HaolongVidio插到主板上(通過主板上setVidio方法)
//System.out.println(hv.getName());
mb.run();//開電腦運行
System.out.println("success");
}
};
以上看出接口的作用就是大力實現了java的開源性,使軟件開發過程優化,接口重要的特征是實現了多樣性,能夠很好地解決C++中遺留的多繼承中出現的問題。
第一:具體的功能方法如果是public直接就可以用import引入該類然后調用
第二:如果這功能是類似于.exe可執行文件或者打包成了.jar的可執行文件,那么Java中有固定的代碼可以內嵌運行已經實現功能的程序
第三:如果你說的其他程序,是指用別的語言寫的,那么可以用相關工具將該Java程序打包成.jar,然后安裝了Java運行環境后就可以當成.exe文件運用。
第四:如果僅僅只是想把已經寫好的Java程序,該程序已經實現了具體功能,然后你想用其他語言來調用該功能,這就需要網上再找下有這種工具沒了?Java中的JNI和JNA相關技術可以研究下,我只知道人工編寫新代碼。
在Eclipse中自動生成接口和JUnit測試類的方法:
1、首先新建一個項目叫JUnit_Test,以編寫一個Calculator類為例來說明,這是一個能夠簡單實現加減乘除、平方、開方的計算器類,然后對這些功能進行單元測試。
package?andycpp;
public?class?Calculator?{
private?static?int?result;?//?靜態變量,用于存儲運行結果
public?void?add(int?n)?{
result?=?result?+?n;
}
public?void?substract(int?n)?{
result?=?result?-?1;??//Bug:?正確的應該是?result =result-n
}
public?void?multiply(int?n)?{
}?????????//?此方法尚未寫好
public?void?divide(int?n)?{
result?=?result?/?n;
}
public?void?square(int?n)?{
result?=?n?*?n;
}
public?void?squareRoot(int?n)?{
for?(;?;)?;????????????//Bug?:?死循環
}
public?void?clear()?{?????//?將結果清零
result?=?0;
}
public?int?getResult()?{
return?result;
}
}
2、將JUnit4單元測試包引入這個項目:在該項目上點右鍵,點“屬性”,如圖:
3、在彈出的屬性窗口中,首先在左邊選擇“Java Build Path”,然后到右上選擇“Libraries”標簽,之后在最右邊點擊“Add Library…”按鈕,如下圖所示:
在新彈出的對話框中選擇JUnit4并點擊確定,如上圖所示,JUnit4軟件包就被包含進我們這個項目了。
4、生成JUnit測試框架:在Eclipse的Package Explorer中用右鍵點擊該類彈出菜單,選擇“New?à?JUnit Test Case”。如下圖所示:
5、在彈出的對話框中,進行相應的選擇,如下圖所示:
6、點擊“下一步”后,系統會自動列出你這個類中包含的方法,選擇你要進行測試的方法。此例中,我們僅對“加、減、乘、除”四個方法進行測試。如下圖所示:
之后系統會自動生成一個新類CalculatorTest,里面包含一些空的測試用例。你只需要將這些測試用例稍作修改即可使用。完整的CalculatorTest代碼如下:
package?andycpp;
import?static?org.junit.Assert.*;
import?org.junit.Before;
import?org.junit.Ignore;
import?org.junit.Test;
public?class?CalculatorTest?{
private?static?Calculator?calculator?=?new?Calculator();
@Before
public?void?setUp()?throws?Exception?{
calculator.clear();
}
@Test
public?void?testAdd()?{
calculator.add(2);
calculator.add(3);
assertEquals(5,?calculator.getResult());
}
@Test
public?void?testSubstract()?{
calculator.add(10);
calculator.substract(2);
assertEquals(8,?calculator.getResult());
}
@Ignore("Multiply()?Not?yet?implemented")
@Test
public?void?testMultiply()?{
}
@Test
public?void?testDivide()?{
calculator.add(8);
calculator.divide(2);
assertEquals(4,?calculator.getResult());
}
}
7、運行測試代碼:按照上述代碼修改完畢后,我們在CalculatorTest類上點右鍵,選擇“Run As?à?JUnit Test”來運行我們的測試,如下圖所示:
8、運行結果如下:
WebService一般是做接口的,如果你要進行客戶端的調用,則需要生成客戶端代碼。客戶端代碼可以通過工具生成的,比如axis和axis2等都可以,如果你不愿意自動生成則需要手動編寫了。
文章標題:java不寫代碼生成接口 java無代碼開發
本文地址:http://m.newbst.com/article2/doihhic.html
成都網站建設公司_創新互聯,為您提供App設計、自適應網站、靜態網站、網站制作、服務器托管、網站收錄
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯