电脑USB接口实现鼠标和键盘功能

接口是一种引用数据类型,是方法的集合。接口内部主要封装了方法。
使用 interface 关键字定义,会被编译成.class文件。
接口不能创建对象,但是其他类可以使用 implements 实现接口。其他接口也可以使用 extends 继承接口。

需求

电脑具备使用USB设备的功能。在生产时,厂商需要根据USB接口生产规范类生产,这样才能接入其他厂商生产的USB设备。
定义USB接口,具备最基本的open功能和close功能。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守 USB规范,实现USB接口,否则鼠标和键盘的生产出来也无法使用。

分析

进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
• USB接口:包含开启功能、关闭功能
• 笔记本类:包含运行功能、关机功能、使用USB设备功能
• 鼠标类:要实现USB接口,并具备点击的方法
• 键盘类:要实现USB接口,具备敲击的方法

程序运行结果

程序运行结果

代码

package com.junlong.laptop;

/**
 * 笔记本类
 * @Author: junlong.zhou
 * @Date: 2021/6/25 14:19
 * @Version 1.0
 */
public class Laptop {
    // 开机
    public void open() {
        System.out.println("电脑已开机...");
    }

    // 关机
    public void shoutDown() {
        System.out.println("电脑已关机...");
    }

    // 使用USB设备
    public void useUsb(Usb usb) {
        // 判断是否有Usb设备
        if (usb != null) {
            // 启用usb设备
            usb.open();
            // 判断是否是鼠标
            if (usb instanceof Mouse) {
                // 鼠标点击
                Mouse mouse = (Mouse) usb;
                mouse.click();
            }
            // 判断是否是键盘
            if (usb instanceof KeyBoard) {
                // 键盘输入
                KeyBoard keyBoard = (KeyBoard) usb;
                keyBoard.type();
            }
            // 关闭usb设备
            usb.close();
        }
    }
}

package com.junlong.laptop;

/**
 * USB接口
 * @Author: junlong.zhou
 * @Date: 2021/6/25 14:20
 * @Version 1.0
 */
public interface Usb {
    // 开启
    void open();
    // 关闭
    void close();
}

package com.junlong.laptop;

/**
 * 鼠标类
 * @Author: junlong.zhou
 * @Date: 2021/6/25 14:20
 * @Version 1.0
 */
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.junlong.laptop;

/**
 * 键盘类
 * @Author: junlong.zhou
 * @Date: 2021/6/25 14:21
 * @Version 1.0
 */
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 com.junlong.laptop;

/**
 * 测试类
 * @Author: junlong.zhou
 * @Date: 2021/6/25 14:21
 * @Version 1.0
 */
public class Test {
    public static void main(String[] args) {
        // 创建电脑对象
        Laptop laptop = new Laptop();
        // 电脑开机
        laptop.open();
        // 使用鼠标
        laptop.useUsb(new Mouse());
        // 使用键盘
        laptop.useUsb(new KeyBoard());
        // 电脑关机
        laptop.shoutDown();
    }
}

如果你看到了这里,请小伙伴给个一键三连,你的肯定是对我最大的鼓励-

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行走的程序喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值