题目:面向对象思想设计一个电脑对象,可以接入2个USB设备(鼠标,键盘:实现接入,调用独有功能,拔出)。
分析:
(1)提供2个USB设备。
(2)定义一个USB的接口(声明USB设备的规范必须是:实现接入和拔出的功能)。
(3)开始定义2 个真实的实现类代表鼠标和键盘。
(4)定义一个电脑类。
public class Demo {
public static void main(String[] args) {
//1.买一部电脑
Computer c=new Computer();
//2.买一个鼠标
USB huawei=new Mouse("华为鼠标");
c.install(huawei);
//3.买一个键盘
KeyBoard sfy=new KeyBoard("双飞燕键盘");
c.install(sfy);
}
}
//定义USB的规范,必须要完成接入和拔出的功能
interface USB{
void connect();//输入
void unconnect();//拔出
//接口内:常量和抽象方法
}
class Computer{
//提供一个安装USB设备的入口
public void install(USB usb) {
usb.connect();
//usb.dbclick();
//usb可能是鼠标或者键盘
if(usb instanceof Mouse) {
Mouse m=(Mouse)usb;
m.dbclick();
}else if(usb instanceof KeyBoard) {
KeyBoard k=(KeyBoard) usb;
k.keydown();
}
usb.unconnect();
}
}
//定义2个USB设备:鼠标,键盘
class Mouse implements USB{
private String name;
public Mouse(String name) {
this.name=name;
}
//双击
public void dbclick(){
System.out.println(name+"双击了...666666");
}
@Override//重写
public void connect() {
System.out.println(name+"成功接入了设备");
}
@Override
public void unconnect() {
System.out.println(name+"成功拔出了设备");
}
}
class KeyBoard implements USB{
private String name;
public KeyBoard(String name) {
this.name=name;
}
//按键
public void keydown(){
System.out.println(name+"写下了...666666");
}
@Override
public void connect() {
System.out.println(name+"成功接入了设备");
}
@Override
public void unconnect() {
System.out.println(name+"成功拔出了设备");
}
}