[精华帖?]滑稽之谈|||

题目:

模拟电脑USB功能设备使用

1.定义USB接口,具备最基本的开启功能和关闭功能

2.定义电脑类,具有开机、关机以及使用usb设备功能

3.鼠标类、具有usb功能,并具有额外的点击功能

4.键盘类,具有usb功能,并具有额外的敲击功能

5.电脑在使用usb设备时,如果是鼠标,则除了usb的开启、关闭功能之外,还能触发鼠标的点击功能

6.电脑在使用usb设备时,如果是键盘,则除了usb的开启、关闭功能之外,还能触发键盘的敲击功能



1.定义USB接口,具备最基本的开启功能和关闭功能

package com.cn.computer;

public interface USB {
//puvlic interface 接口名
void open();
void close();
}

2.定义电脑类,具有开机、关机以及使用usb设备功能

package com.cn.computer;

public class Computer {
public void powerOn(){
System.out.println("电脑已开机");
} public void powerOff(){
System.out.println("电脑已关机");
} public void useUsbDevice(USB usb){
usb.open();
if(usb instanceof Mouse){
((Mouse) usb).click();
}else if(usb instanceof Keyboard){
((Keyboard) usb).keyDown();
}
} public void deleteUsbDevice(USB usb){
System.out.println("移除usb设备");
usb.close();
}
}

3.鼠标类、具有usb功能,并具有额外的点击功能

package com.cn.computer;

public class Mouse implements USB{
//implements关键字实现接口
@Override
public void close() {
System.out.println("usb关闭,鼠标失去连接");
} @Override
public void open() {
System.out.println("usb开启,鼠标已连接");
} public void click(){
System.out.println("鼠标点击了");
}
}

4.键盘类,具有usb功能,并具有额外的敲击功能

package com.cn.computer;

public class Keyboard implements USB{
@Override
public void close() {
System.out.println("usb关闭,键盘失去连接");
} @Override
public void open() {
System.out.println("usb开启,键盘已连接");
} public void keyDown(){
System.out.println("键盘敲击了");
}
}

5.电脑在使用usb设备时,如果是鼠标,则除了usb的开启、关闭功能之外,还能触发鼠标的点击功能

6.电脑在使用usb设备时,如果是键盘,则除了usb的开启、关闭功能之外,还能触发键盘的敲击功能

package com.cn.computer;

public class Main {
public static void main(String[] args) {
Computer computer=new Computer();
computer.powerOn();
USB mouse=new Mouse();
computer.useUsbDevice(mouse);
USB keyboard=new Keyboard();
computer.useUsbDevice(keyboard);
computer.deleteUsbDevice(mouse);
computer.deleteUsbDevice(keyboard);
computer.powerOff();
}
}

运行结果

C:\java\JDK\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\...
电脑已开机
usb开启,鼠标已连接
鼠标点击了
usb开启,键盘已连接
键盘敲击了
移除usb设备
usb关闭,鼠标失去连接
移除usb设备
usb关闭,键盘失去连接
电脑已关机

[精华帖]Java接口怎么定义?如何使用?【实例讲解】的更多相关文章

  1. 教你在Java接口中定义方法

    基本上所有的Java教程都会告诉我们Java接口的方法都是public.abstract类型的,没有方法体的. 但是在JDK8里面,你是可以突破这个界限的哦. 假设我们现在有一个接口:TimeClie ...

  2. java接口中定义成员变量

    //抽象类中可以定义如下成员变量:public abstract class People { public String name; public int age; public abstract ...

  3. Java 接口中定义抽象方法有什么意义

    接口方法声明只能是public abstract的,所以不管你在声明的时候加不加abstract,都是可以的.Java 8开始,接口还引入了默认方法,也就是可以给接口的方法提供默认的实现,默认方法应当 ...

  4. 百度鹰眼Java接口调用增删改查实例

    因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试.刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在.后又试了几种方法,均提示a ...

  5. 【插件开发】—— 11 窃听风云(Java事件监听原理-GEF实例讲解)

    前文回顾: 1 插件学习篇 2 简单的建立插件工程以及模型文件分析 3 利用扩展点,开发透视图 4 SWT编程须知 5 SWT简单控件的使用与布局搭配 6 SWT复杂空间与布局搭配 7 SWT布局详解 ...

  6. java接口和抽象类

    关于接口 1.创建一个接口,需要使用interface关键字. 2.实现一个接口,需要使用implements关键字. 3.接口的成员属性都是静态常量(默认public static final). ...

  7. Java 接口和抽象类差别

    原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想非常大程度上取决于它的总体架构,而这个总体架构事实上 ...

  8. Java 接口基础详解

    目录 Java接口示例 实现一个接口 接口实例 实现多个接口 方法签名重叠 接口变量 接口方法 接口默认方法 接口与继承 继承与默认方法 接口与多态性 在Java中,接口是一个抽象类型,有点类似于类, ...

  9. 我对面向对象设计的理解——Java接口和Java抽象类

    在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...

随机推荐

  1. basicRF双向灯光控制

    题目: 实现基于BasicRF无线点对点通信的双向灯光控制,具体要求如下: 1> 节点A 和节点B 的PANID设置为0x1234,通道号设置为17,节点地址自定义.<2> 按下节点 ...

  2. 【Kafka】监控及运维——kafka-eagle

    目录 简单介绍 概述 安装部署 一.环境要求 二.下载源码包并解压 三.准备数据库 四.修改配置文件 五.配置环境变量 六.启动kafka-eagle 七.成功运行 简单介绍 概述 Kafka-eag ...

  3. CF#135 D. Choosing Capital for Treeland 树形DP

    D. Choosing Capital for Treeland 题意 给出一颗有方向的n个节点的树,现在要选择一个点作为首都. 问最少需要翻转多少条边,使得首都可以到所有其他的城市去,以及相应的首都 ...

  4. [hihoCoder1236 Scores 2015BeijingOnline]简单粗暴的分块+简单粗暴的bitset

    题意:50000个5维向量,50000次询问每一维都不大于某一向量的向量个数,强制在线. 思路:做完这题才知道bitset效率这么高,自己本地测试了下1s可以操作1010个bit,orz简单粗暴 令S ...

  5. [Selenium] 自动侦测浏览器版本并下载对应的浏览器驱动

    昨天在群里聊天时,有同学说 Appium 官方支持自动下载兼容的浏览器驱动,想来Selenium也有类似的方法,于是在网上搜索一番.参考了Medium上一篇文章的方法,对步骤进行改进,增加了对多浏览器 ...

  6. 疑问_网址参数不同的时候改如何选择_MySQL_芬兰站

    豹子安全-注入工具-疑问_网址参数不同的时候改如何选择_MySQL_芬兰站_kouvolankipparit.fi_基于联合查询_20200416 www.leosec.net 请看下列GIF视频:

  7. springmvc 校验---spring校验

    springmvc提供了灵活的可拓展的校验方式,根据不同的项目可选择适合的校验方式,首先介绍下springmvc中内置的校验实现方式! 1.实现 org.springframework.validat ...

  8. Spring全家桶之spring boot(三)

    spring boot集成mybatis 众所周知,spring与springmvc可以无缝集成,而mybatis不是spring旗下的框架,因此需要进行配置,当然,这里的配置也是非常简单的. 1.首 ...

  9. 我的linux学习日记day2

    RPM  软件包管理器 目的:降低软件安装难度原理 :将软件源代码加上一套安装规则打包到一起,用户只需要运行RPM systemctl start 服务名称 开启服务systemctl stop 服务 ...

  10. Nginx服务器的安装和卸载

    Nginx的安装 安装Nginx之前,需要先获取Nginx的安装文件.我们可以在http://nginx.org/en/download.html获取各个版本的Nginx安装文件.大家可以按照自己的需 ...