欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java之如何定義USB接口

 更新時(shí)間:2023年05月08日 14:54:12   作者:驅(qū)動男孩  
這篇文章主要介紹了java之如何定義USB接口問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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)文章

  • Spring的自動裝配Bean的三種方式

    Spring的自動裝配Bean的三種方式

    本篇文章主要介紹了 Spring的自動裝配Bean的三種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • GSON實(shí)現(xiàn)Java對象的JSON序列化與反序列化的實(shí)例教程

    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)用場景

    這篇文章主要介紹了剖析Java中阻塞隊(duì)列的實(shí)現(xiàn)原理及應(yīng)用場景,這里也對阻塞和非阻塞隊(duì)列的不同之處進(jìn)行了對比,需要的朋友可以參考下
    2015-12-12
  • Java list與set中contains()方法效率案例詳解

    Java list與set中contains()方法效率案例詳解

    這篇文章主要介紹了Java list與set中contains()方法效率案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java中獲取Class對象的三種方式詳解

    Java中獲取Class對象的三種方式詳解

    本文介紹了Java中獲取Class對象的三種常見方式:使用.class語法、使用Class.forName()方法以及使用.getClass()方法,需要的朋友可以參考下
    2023-12-12
  • Mybatis查詢方法如何實(shí)現(xiàn)沒有返回值

    Mybatis查詢方法如何實(shí)現(xiàn)沒有返回值

    這篇文章主要介紹了Mybatis查詢方法如何實(shí)現(xiàn)沒有返回值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java Spring框架簡介與Spring IOC詳解

    Java Spring框架簡介與Spring IOC詳解

    Spring 框架是一個(gè)輕量級的解決方案,可以一站式地構(gòu)建企業(yè)級應(yīng)用。它是為了解決 企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring 使用基本的 JavaBean 來完成以前只可能由 EJB 完成的事情。IOC 是 Inversion of Control 的縮寫,多數(shù)書籍翻譯成控制反轉(zhuǎn)
    2021-09-09
  • 微信小程序錄音文件格式silk遇到的問題及解決方法

    微信小程序錄音文件格式silk遇到的問題及解決方法

    錄音文件為silk格式,說是silk其實(shí)是base64加密后的webm格式,只需將其轉(zhuǎn)為webm格式即可。但是在處理過程中遇到各種坑,下面小編給大家?guī)砹宋⑿判〕绦蜾浺粑募袷絪ilk遇到的問題及解決方法,感興趣的朋友一起看看吧
    2018-09-09
  • Spring源碼解密之自定義標(biāo)簽與解析

    Spring源碼解密之自定義標(biāo)簽與解析

    這篇文章主要給大家介紹了關(guān)于Spring源碼解密之自定義標(biāo)簽與解析的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • MyBatis將查詢出的兩列數(shù)據(jù)裝配成鍵值對的操作方法

    MyBatis將查詢出的兩列數(shù)據(jù)裝配成鍵值對的操作方法

    這篇文章主要介紹了MyBatis將查詢出的兩列數(shù)據(jù)裝配成鍵值對的操作代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08

最新評論