【基础介绍】
笔记本电脑(laptop) 通常具备使用USB设备的功能。定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,实现USB接口,否则鼠标和键盘的生产出来也无法使用。
【案例分析】
描述笔记本类,实现笔记本使用USB鼠标、USB键盘:
●USB接口,包含打开设备功能、关闭设备功能;
●笔记本类,包含开机功能、关机功能、使用USB设备功能;
●鼠标类,要实现USB接口,并具备点击的方法;
●键盘类,要实现USB接口,具备敲击的方法。
●分析图:
【代码实现】
<USB接口>
package com.java.intreface;
public interface USB {
public abstract void open();
public abstract void close();
}
<笔记本电脑>
package com.java.intreface;
//笔记本电脑
public class Computer {
public void powerOn() {
System.out.println("电脑开机");
}
public void powerOf() {
System.out.println("电脑关机");
}
public void use(USB usb){
usb.open();
usb.close();
if(usb instanceof Mouse){ //向下转型
Mouse mouse = (Mouse) usb;
mouse.click();
}else if(usb instanceof Keyboard){
Keyboard keyboard = (Keyboard)usb;
keyboard.input();
}
}
}
<鼠标类>
package com.java.intreface;
//鼠标类
public class Mouse implements USB{
@Override
public void open() {
System.out.println("打开鼠标");
}
@Override
public void close() {
System.out.println("关闭鼠标");
}
public void click(){
System.out.println("鼠标点击");
}
}
<键盘类>
package com.java.intreface;
//键盘类
public class Keyboard implements USB {
@Override
public void open() {
System.out.println("打开键盘");
}
@Override
public void close() {
System.out.println("关闭键盘");
}
public void input(){
System.out.println("键盘输入");
}
}
< Main >
package com.java.intreface;
public class DemonMain {
public static void main(String[] args) {
//创建一个笔记本电脑
Computer computer = new Computer();
computer.powerOn();
System.out.println("============");
/*
方法①:向下转型
*/
USB usbMouse = new Mouse();
computer.use(usbMouse);
System.out.println("============");
/*
方法二:可以直接new: 类似于把int转成double => 把keyboard转成USB
*/
Keyboard useKeyboard = new Keyboard();
computer.use(useKeyboard); //本来括号里面是USB类型 ①
//computer.use(new Keyboard());//使用匿名对象也可以 ②
System.out.println("============");
computer.powerOf();
}
}
【运行结果】