Java作业——USB

1.模拟电脑的开机关机
2.模拟鼠标、键盘的插入、拔出
3.Java接口的练习

package USB;

public interface USB {
    public abstract void open();
    public abstract void close();
}

========================================

package USB;

public class Mouse implements USB {
    public void open(){
        System.out.println("打开鼠标");
    }

    public void close(){
        System.out.println("关闭鼠标");
    }

    public void click(){
        System.out.println("点击鼠标");
    }
}

=============================================

package USB;

public class Keyboard implements USB{
    public void open(){
        System.out.println("打开键盘");
    }

    public void close(){
        System.out.println("关闭键盘");
    }

    public void type(){
        System.out.println("键盘输入");
    }
}

=============================================

package USB;

public class Computer {
    public void powerOn(){
        System.out.println("笔记本开机");
    }
    public void powerOff(){
        System.out.println("笔记本关机");
    }

    public void usbDevice(USB usb){
        usb.open();
        if (usb instanceof Mouse){
            Mouse mouse = (Mouse)usb;
            mouse.click();
        }else if (usb instanceof Keyboard){
            Keyboard keyboard = (Keyboard)usb;
            keyboard.type();
        }
        usb.close();
    }
}

instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为:
1 boolean result = obj instanceof Class
其中 obj 为一个对象,Class 表示一个类或者 一个接口,当 obj 为 Class 的对象,或者是其直接或间接子类,或者是其接口的实现类,结果result 都返回 true,否则返回false。
注意:编译器会检查 obj 是否能转换成右边的class类型,如果不能转换则直接报错,如果不 能确定类型,则通过编译,具体看运行时定。

=============================================================

package USB;

public class DemoMain {
    public static void main(String[] args) {
        Computer computer = new Computer();
        computer.powerOn();

        Mouse mouse = new Mouse();
        USB usbMouse = mouse;	//向上转型实现多态
        computer.usbDevice(usbMouse);

        USB usbKeyboard = new Keyboard();
        computer.usbDevice(usbKeyboard);

        Mouse mouse1 = new Mouse();	//实例化的时候向上转型实现多态
        computer.usbDevice(mouse1);


        computer.powerOff();
    }
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值