3.1 笔记本电脑
笔记本电脑(laptop)通常具备使用USB设备的功能。在生产时,笔记本都预留了可以插入USB设备的USB接口,但具体是什么USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以。
定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,实现USB接口,否则鼠标和键盘生产出来也无法使用。
3.2 案例分析
进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
1、USB接口,包含开启功能、关闭功能
2、笔记本类,包含运行功能、关机功能、使用USB设备功能
3、鼠标类,要实现USB接口,并具备点击的方法
4、键盘类,要实现USB接口,具备敲击的方法
3.3 案例实现
定义USB接口:
package demo3;
public interface USB {
void open();//开启功能
void close();//关闭功能
}
定义鼠标类:
package demo3;
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 demo3;
public class KeyBoard implements USB{
@Override
public void open() {
System.out.println("键盘开启,绿灯闪一闪");
}
@Override
public void close() {
System.out.println("键盘关闭,绿灯熄灭");
}
public void type(){
System.out.println("键盘打字");
}
}
定义笔记本类:
package demo3;
public class Laptop {
//笔记本开启运行功能
public void run(){
System.out.println("笔记本运行");
}
//笔记本使用usb设备,这时当笔记本对象调用这个功能时,必须给其传递一个符合USB规则的USB设备
public void useUSB(USB usb){
//判断是否有USB设备
if(usb!=null){
usb.open();
//类型转换,调用特有方法
if(usb instanceof Mouse){
Mouse m=(Mouse) usb;
m.click();
}else if(usb instanceof KeyBoard){
KeyBoard kb=(KeyBoard) usb;
kb.type();
}
usb.close();
}
}
public void shutDown(){
System.out.println("笔记本关闭");
}
}
测试类:
package demo3;
public class Test {
public static void main(String[] args) {
//创建笔记本实体对象
Laptop lt=new Laptop();
//笔记本开启
lt.run();
//创建鼠标实体对象
USB u=new Mouse();
//笔记本使用鼠标
lt.useUSB(u);
//创建键盘实体对象
KeyBoard kb=new KeyBoard();
//笔记本使用键盘
lt.useUSB(kb);
//笔记本关闭
lt.shutDown();
}
}