试题:
笔记本电脑(laptop)通常具备使用USB设备的功能。
在生产时,笔记本都预留了可以插入USB设备的USB接口, 但具体是什么USB设备,笔记本厂商并不关心,
只要符合USB规格的设备都可以。
定义USB接口,具备最基本的开启功能和关闭功能。
鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守 USB规范,实现USB接口,
否则鼠标和键盘的生产出来也无法使用。(使用面向对象思想编程:接口,多态等)

USB接口类

/*USB接口*/
public interface USB {// 开启方法void open();// 关闭方法void close();
}

鼠标类

/*鼠标类  实现USB接口*/
public class Mouse implements USB {// 实现开启方法public void open(){System.out.println("鼠标开启");}// 实现关闭方法public void close(){System.out.println("鼠标关闭");}
}

键盘类

/*键盘类  实现USB接口*/
public class Keyboard implements USB {// 实现开启方法public void open(){System.out.println("键盘开启");}// 实现关闭方法public void close(){System.out.println("键盘关闭");}
}

电脑类

/*电脑类*/
public class Laptop {// 笔记本电脑有一个USB属性private USB usb; // 面向接口编程// 构造方法public Laptop() {}public Laptop(USB usb) {this.usb = usb;}// setter and getterpublic void setUsb(USB usb) {this.usb = usb;}public USB getUsb() {return usb;}
}

测试程序

/*测试程序*/
public class Test {public void static void main(String[] args) {// 创建鼠标对象USB mouse = new Mouse();// 创建键盘对象USB keyboard = new Keyboard();// 创建笔记本电脑对象Laptop laptop = new Laptop();// 给笔记本配置一个鼠标laptop.setUsb(mouse);// 启动鼠标laptop.getUsb().open();// 关闭鼠标laptop.getUsb().close();// 给笔记本配置一个键盘laptop.setUsb(keyboard);// 启动键盘laptop.getUsb().open();// 关闭键盘laptop.getUsb().close();}
}

运行结果
鼠标开启
鼠标关闭
键盘开启
键盘关闭

Java中面向接口编程的简单案例(电脑、鼠标、键盘、USB接口)相关推荐

  1. java中List Stream的简单使用

    java中List Stream的简单使用 一,api入门案例 实体类 public class Person {private int id;private String name;private ...

  2. Java中主线程如何捕获子线程抛出的异常

    Java中主线程如何捕获子线程抛出的异常 参考文章: (1)Java中主线程如何捕获子线程抛出的异常 (2)https://www.cnblogs.com/jpfss/p/10272885.html ...

  3. Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信

    本文计划采用socket实现客户端和服务端的任意双向通信,即客户端可以随时给服务端发消息,服务端也可以随时给客户端发消息,最终结果就是一个类似与QQ的聊天软件的功能. 以下代码可以直接拷贝到Eclip ...

  4. Java中利用socket实现简单的服务端与客户端的通信(基础级)

    在上一篇文章中,简单的介绍了java中入门级的socket编程,简单的实现了客户端像服务器端发送数据,服务器端将数据接收并显示在控制台,没有涉及多线程.上一篇文章的链接:Java中利用socket实现 ...

  5. java 向nodejs 发送请求简单案例

    java  向nodejs 发送请求简单案例 最近在做nodejs的东西,一直不明白java如何与nodejs建立连接,下面写了一个简单demo: nodejs端: var http = requir ...

  6. JAVA中一维数组的简单使用!

    JAVA中一维数组的简单使用! 一.数组的概述 1.数组的常见概念: 数组名 下标(或索引) 元素 数组的长度 2. 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括 基本数据类型和引用 ...

  7. Java中使用JNA实现全局监听Linux键盘事件

    title: Java中使用JNA实现全局监听Linux键盘事件 date: 2019-05-03 19:08:00 Java中使用JNA实现全局监听Linux键盘事件 用JNA实现的键盘监听,在Wi ...

  8. Java中使用JNA实现全局监听Windows键盘事件

    title: Java中使用JNA实现全局监听Windows键盘事件 date: 2019-05-02 21:55:00 Java中使用JNA实现全局监听Windows键盘事件 前言: 一直打算做一个 ...

  9. Synergy工具 共享Windows系统电脑Linux系统电脑 鼠标键盘

    Synergy工具 共享Windows系统电脑Linux系统电脑 鼠标键盘 相关软件相关文章发表评论 来源:西西整理时间:2014/11/6 15:03:11字体大小:A-A+ 作者:西西点击:24评 ...

  10. 用鼠标关闭计算机步骤,win10系统电脑鼠标键盘设置快速关机怎么操作

    电脑关机的时候,其实我们可以设置一个快速的方法,就是从键盘或者鼠标上来设置,下面是学习啦小编为大家介绍win10系统电脑鼠标键盘快速关机的设置方法,欢迎大家阅读. win10系统电脑鼠标键盘快速关机的 ...

最新文章

  1. 编程入门python语言是多大孩子学的-不学点编程,将来怎么给孩子辅导作业―Python新手入门教程...
  2. 百度黄埔学院学员开题 | ‘首席 AI 架构师’实战之旅开启!
  3. 读取txt文件赋值到DataGridView中
  4. VB如何判断文件正被占用/已被打开
  5. javaee互联网轻量级框架整合开发_企业开发:Spring框架的简易、高效切入篇
  6. mysql show命令原理_MySQL show processlist;命令详解
  7. c语言整数转浮点数_浮点数的秘密
  8. Spring Boot 2.0.3 修改 Servlet 容器(服务器)配置
  9. Citrix MCS桌面管理技术解读
  10. 澳门中区停电2小时影响396户 1人困电梯后获救
  11. word中a3转a4排版打印
  12. 关于电脑端微信小程序不能启动解决
  13. SONY笔记本电脑SVS131100C系统重装后Fn键功能问题
  14. 小孩终生教育工程(人生管理):有些东西比努力比钱更重要
  15. 手把手教你用Python采集腾讯招聘数据
  16. Ubuntu 和 CentOS 根据命令查找软件包
  17. Lorem在HTML的使用
  18. 同期收治患者住院天数_速看!二级公立中医医院绩效考核指标发布(附34个指标)...
  19. RGB归一化及高效实现
  20. python3实用小工具--wifi路由器厂商查看器(附源码)

热门文章

  1. 配置案例| Modbus转Profinet网关与ARX-MA100微型空气质量监测系统连接
  2. 【Java】soap协议发送webservice请求工具类
  3. 解决模拟器Emulator: emulator: ERROR: x86 emulation currently requires hardware acceleration!问题
  4. 当程序员变成软件项目经理
  5. 什么是 0day 漏洞,1day 漏洞和 nday 漏洞?
  6. 虚拟仿真实验项目所需服务器,工程结构虚拟仿真实验室
  7. 黑人抬棺html网站源码
  8. win10关闭windows聚焦_关于Windows 10 Windows聚焦功能失效
  9. 计算机电路计算公式,电路中相关计算公式.doc
  10. 第二课:更换国内下载源(阿里源为例)