java之如何定義USB接口
java定義USB接口
定義USB接口,模擬各USB設(shè)備,在電腦開機(jī)時(shí)依次啟動,關(guān)機(jī)時(shí)依次退出
具體代碼實(shí)現(xiàn):
USB類
public interface USB { void turnOn(); void turnOff(); }
接口類的實(shí)現(xiàn)
//接口的實(shí)現(xiàn)類之鼠標(biāo) public class Mouse implements USB { public void turnOn(){ System.out.println("鼠標(biāo)啟動了"); } public void turnOff(){ System.out.println("鼠標(biāo)關(guān)閉了"); } } //接口的實(shí)現(xiàn)類之鍵盤 public class KeyBoard implements USB{ public void turnOn(){ System.out.println("鍵盤啟動了"); } public void turnOff(){ System.out.println("鍵盤關(guān)閉了"); } } //接口的實(shí)現(xiàn)類之麥克風(fēng) public class Microphone implements USB{ public void turnOn(){ System.out.println("麥克風(fēng)啟動了"); } public void turnOff(){ System.out.println("麥克風(fēng)關(guān)閉了"); } }
計(jì)算機(jī)類
//計(jì)算機(jī)類 public class Computer { private USB[] usbArr = new USB[4]; public void add(USB usb){ for(int i = 0; i < usbArr.length;i++) { if(usbArr[i] == null) { usbArr[i] = usb; break; } } } public void powerOn() { for(int i=0;i<usbArr.length;i++) { if(usbArr[i]!=null) { usbArr[i].turnOn(); } } System.out.println("電腦開機(jī)成功"); } public void powerOff() { for(int i=0;i<usbArr.length;i++) { if(usbArr[i]!=null) { usbArr[i].turnOff(); } } System.out.println("電腦關(guān)機(jī)成功"); } }
Usb測試類
public class USBTest { public static void main(String[] args){ Computer p = new Computer(); p.add(new Mouse()); p.add(new KeyBoard()); p.add(new Microphone()); p.powerOn(); System.out.println("-----------------"); p.powerOff(); } }
控制臺輸出內(nèi)容
注意:因?yàn)轭惖男揎椃加衟ublic,所以對于每個(gè)類,都要單獨(dú)的eclipse中的一個(gè)包內(nèi)定義這些類。
java接口應(yīng)用:用接口定義標(biāo)準(zhǔn)
接口在實(shí)際開發(fā)中,有三大核心應(yīng)用環(huán)境:
- 定義操作標(biāo)準(zhǔn)
- 表示能力
- 在分布式開發(fā)中,暴露遠(yuǎn)程服務(wù)方法。
- (后兩種應(yīng)用環(huán)境還沒接觸,等以后解釋。)
如下圖示例,比如鍵盤、鼠標(biāo)、u盤等設(shè)備與電腦連接,必須通過電腦的USB設(shè)備,才能電腦訪問,換一種例子解釋就是:要想見一個(gè)公司的大boss或者明星(電腦)。要先統(tǒng)一聯(lián)系他們的秘書(接口),然后秘書再轉(zhuǎn)達(dá)給boss或者明星(接口子類)。
代碼示例:
//使用一個(gè)接口實(shí)現(xiàn)一個(gè)標(biāo)準(zhǔn),正常的開發(fā)中先寫標(biāo)準(zhǔn)(接口),再寫類 interface USB{ public void insert();//插入 public void setup();//安裝驅(qū)動 } //必須按著接口的標(biāo)準(zhǔn)使用電腦 class Computer{ public void plugIn(USB usb){ usb.insert(); usb.setup(); } } //鼠標(biāo) class Mouse implements USB{ public void insert(){ System.out.println("鼠標(biāo)插入"); } public void setup(){ System.out.println("鼠標(biāo)安裝驅(qū)動"); } } //U盤 class UDisk implements USB{ public void insert(){ System.out.println("U盤插入"); } public void setup(){ System.out.println("U盤安裝驅(qū)動"); } } class InterfaceDemo{ public static void main(String[] args) { Computer computer = new Computer();//實(shí)例化電腦的對象,調(diào)用其中的方法 computer.plugIn(new Mouse()); System.out.println("================"); computer.plugIn(new UDisk()); } }
運(yùn)行結(jié)果:
鼠標(biāo)插入
鼠標(biāo)安裝驅(qū)動
================
U盤插入
U盤安裝驅(qū)動
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
GSON實(shí)現(xiàn)Java對象的JSON序列化與反序列化的實(shí)例教程
GSON是Google開發(fā)并開源的一個(gè)Java的JSON轉(zhuǎn)換庫,這里我們將來講解GSON實(shí)現(xiàn)Java對象的JSON序列化與反序列化的實(shí)例教程,需要的朋友可以參考下2016-06-06剖析Java中阻塞隊(duì)列的實(shí)現(xiàn)原理及應(yīng)用場景
這篇文章主要介紹了剖析Java中阻塞隊(duì)列的實(shí)現(xiàn)原理及應(yīng)用場景,這里也對阻塞和非阻塞隊(duì)列的不同之處進(jìn)行了對比,需要的朋友可以參考下2015-12-12Java list與set中contains()方法效率案例詳解
這篇文章主要介紹了Java list與set中contains()方法效率案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08Mybatis查詢方法如何實(shí)現(xiàn)沒有返回值
這篇文章主要介紹了Mybatis查詢方法如何實(shí)現(xiàn)沒有返回值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10MyBatis將查詢出的兩列數(shù)據(jù)裝配成鍵值對的操作方法
這篇文章主要介紹了MyBatis將查詢出的兩列數(shù)據(jù)裝配成鍵值對的操作代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08