<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
模擬USB介面的功能
我們在使用計算機的時候經常會用到USB介面,滑鼠、鍵盤等都是帶USB介面的裝置,我們只需要將滑鼠、鍵盤插入到計算機的USB介面中就能正常使用這些帶USB介面的外設。
通過JAVA程式的面向介面程式設計的設計思想,模擬計算機使用USB介面驅動滑鼠和鍵盤的過程。
要求:
① 定義USB介面,介面中有turnOn()啟動USB裝置的方法,和turnOff()關閉裝置的方法;
②定義Mouse滑鼠、KeyBoard鍵盤、MicroPhone麥克風類實現USB介面;
③定義計算機Computer類
powerOn()開機,開機前需要載入所有的USB裝置;
powerOff()關機,關機前需要彈出所有的USB裝置。
注意:開機的時候滑鼠等裝置可以沒有插進去
2.1 寫一個介面USB,裡面有turnOn方法和turnOff方法
2.2 寫Mouse(滑鼠)、KeyBoard(鍵盤)、MicroPhone(麥克風)類實現USB介面
2.3 重寫turnOn和turnOff需要列印相應的物件資訊
2.4 Computer類建立一個介面陣列,用來存放每個實現介面的的子類的範例化物件
2.5 Computer類中建立一個單次新增裝置方法addUSB(USB usb),使得每次呼叫該方法時,該電腦會在介面陣列物件不為null的位置插上一個裝置
2.6 Computer中的powerOn是遍歷完所有的USB介面,若介面物件不為null,就呼叫該裝置的重寫的turnOn方法,當遍歷完所有的後會列印電腦啟動成功。
2.7 Computer中的powerOff是遍歷完所有的USB介面,若介面物件不為null,則呼叫該裝置的被重寫的turnOff方法,然後把該介面物件賦值為null,當遍歷完成所有的後會列印電腦關閉成功。
2.8 如果開機前和關機前都沒有裝置需要載入或彈出的話,會輸出開機前沒有需要載入的裝置或關機前沒有需要彈出的裝置
USB 介面
package Work4; public interface USB { //介面裡面的方法都是抽象方法,那個public abstract可以省略不寫的!!! void turnOn(); void turnOff(); }
KeyBoard類
package Work4; public class KeyBoard implements USB{ private String name; public KeyBoard() { } public KeyBoard(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public void turnOn() { System.out.println(name+"鍵盤載入了"); } @Override public void turnOff() { System.out.println(name+"鍵盤彈出了"); } }
MicroPhone類
package Work4; public class MicroPhone implements USB{ private String name; public MicroPhone() { } public MicroPhone(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public void turnOn() { System.out.println(name+"麥克風載入了"); } @Override public void turnOff() { System.out.println(name+"麥克風彈出了"); } }
Mouse類
package Work4; public class Mouse implements USB{ private String name; public Mouse() { } public Mouse(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public void turnOn() { System.out.println(name+"滑鼠載入了"); } @Override public void turnOff() { System.out.println(name+"滑鼠彈出了"); } }
Computer類
package Work4; public class Computer { //弄一個USB介面,裡面的預設都為null private USB[] usbs=new USB[4]; public Computer() { } //每次只能增加一個裝置 public void addUSB(USB usb){ for (int i = 0; i <usbs.length; i++) { //如果為空,則代表可以插入裝置,否則就插入不了的 if(usbs[i]==null){ usbs[i]=usb; break; } } } public void powerOn(){ boolean flag=false; //判斷是否插入了裝置,只要有就為false for (int i = 0; i <usbs.length; i++) { if(usbs[i]!=null){ //如果USB介面不為空,則代表有裝置,需要啟動的 usbs[i].turnOn(); flag=true; } } if(!flag){ System.out.println("開機前沒有需要載入的裝置"); } System.out.println("開機成功!!!!"); } public void powerOff(){ boolean flag=false; //判斷是否還有裝置沒有裝置被彈出,只要有就為false for (int i = 0; i <usbs.length; i++) { if(usbs[i]!=null){ //如果USB介面不為空,則代表有裝置,關機前需要彈出這些裝置的 usbs[i].turnOff(); usbs[i]=null; flag=true; //彈出裝置後,對應的介面上面就沒有東西了,理應設定為null } } if(!flag){ System.out.println("關機前沒有需要彈出的裝置"); } System.out.println("關機成功!!!!"); } }
TestComputer
package Work4; public class TestComputer { public static void main(String[] args) { Computer c=new Computer(); c.addUSB(new Mouse("羅技")); c.addUSB(new KeyBoard("雙飛燕")); c.addUSB(new MicroPhone("鐵三角")); c.powerOn(); c.powerOff(); //沒有插入裝置時測試 c.powerOn(); c.powerOff(); } }
到此這篇關於java實現模擬USB介面的功能的文章就介紹到這了,更多相關java 模擬USB介面內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45