java語(yǔ)言怎么寫(xiě)硬件接口編程
你想知道程序員怎么用JAVA語(yǔ)言來(lái)寫(xiě)硬件接口編程的嗎?今天就讓學(xué)習(xí)啦小編來(lái)教下大家吧,快來(lái)看看吧,希望能讓大家有所收獲!
JAVA語(yǔ)言如何編寫(xiě)硬件接口
面向接口編程很重要的一點(diǎn)就是接口回調(diào),用接口聲明的變量稱(chēng)作接口變量,屬于引用型變量,可以存放實(shí)現(xiàn)該接口的類(lèi)的實(shí)例的引用,對(duì)象引用。
接口回調(diào):可以把實(shí)現(xiàn)某一接口的類(lèi)創(chuàng)建的對(duì)象的引用賦值給該接口聲明的接口變量,那么該接口變量就可以調(diào)用被類(lèi)實(shí)現(xiàn)的接口方法。
Com com; //接口
ImplCom object; //實(shí)現(xiàn)接口的對(duì)象
com = object; //接口回調(diào),com會(huì)根據(jù)對(duì)象的不同而實(shí)現(xiàn)不同的接口方法,回調(diào)類(lèi)重寫(xiě)的接口方法
接口和abstract類(lèi)的比較如下:
abstract類(lèi)和接口都可以有abstract方法。
接口中只可以有常量,不能有變量;而abstract類(lèi)中既可以有常量也可以有變量。
abstract類(lèi)中也可以有非abstract方法,接口不可以。
在設(shè)計(jì)程序時(shí)應(yīng)當(dāng)根據(jù)具體的分析來(lái)確定是使用抽象類(lèi)還是接口。abstract類(lèi)除了提供重要的需要重寫(xiě)的abstract方法外,也提供了子類(lèi)可以繼承的變量和非abstract方法。如果某個(gè)重要問(wèn)題需要使用繼承才能更好地解決,比如,子類(lèi)需要重寫(xiě)父類(lèi)的abstract方法,還需要從父類(lèi)繼承一些變量或繼承一些重要的非abstract方法,就可以考慮用abstract類(lèi)。如果某個(gè)問(wèn)題不需要繼承,只是需要若干個(gè)類(lèi)給出某些重要的abstract方法的實(shí)現(xiàn)細(xì)節(jié),就可以考慮使用接口。
使用接口編程的最重要的核心思想就是使用接口回調(diào),及接口變量存放實(shí)現(xiàn)該接口的類(lèi)的對(duì)象的引用,從而接口變量就可以回調(diào)類(lèi)實(shí)現(xiàn)的接口方法。
public interface Advertisement {
public void showAdvertisement();
public String getCorpName();
}
2、設(shè)計(jì)AdvertisementBoard類(lèi)(廣告牌),該類(lèi)有一個(gè)show(Advertisement adver)方法,該方法的參數(shù)是接口Advertisement的類(lèi)型,顯然該參數(shù)adver可以存放任何實(shí)現(xiàn)Advertisement接口的類(lèi)的對(duì)象的引用,并回調(diào)類(lèi)重寫(xiě)的接口方法showAdvertisement()來(lái)顯示公司的廣告詞,回調(diào)類(lèi)重寫(xiě)的接口方法getCorpName來(lái)獲取公司名稱(chēng)。
public class AdvertisementBoard{
public void show (Advertisement adver){
System.out.println(adver.getCorpName()+"廣告詞");
adver.showAdvertisement(); //接口回調(diào)
}
}
實(shí)現(xiàn)接口的A公司類(lèi):
8public class Acorp implement Advertisement {
public void showAdvertisement(){
System.out.println("AAAAAAAAAAAAAAAAA");
}
public String getCorpName(){
return "A Corp";
}
}
實(shí)現(xiàn)接口的B公司類(lèi):
public class Bcorp implement Advertisement {
public void showAdvertisement(){
System.out.println("BBBBBBBBBBBBBBBBB");
}
public String getCorpName(){
return "B Corp";
}
}
運(yùn)行住程序:
public class test (){
public state void main (string args[]){
AdvertisementBoard board = new AdvertisementBoard();
board.show(new Acorp());
board.show(new Bcorp());
}
}