java--继承--上转型--接口的实践作业--USB模拟器
题目:编写一个USB接口程序,模拟计算机启动过程和关闭过程启动过程中要加载鼠标、键盘、麦克风等USB设备,具体
要求如下:
(1)定义一个接口USB,包含两个抽象方法turnOn()he turnOff(),分别用于表示USB设备的启动和关闭
(2)编写鼠标Mouse、键盘KeyBoard、麦克风Mic类,实现接口中的turnOn()、turnOff()方法,方法中显示“XX设备
启动了”或“XX设备关闭了”即可
(3)编写计算机类Computer,要求有一个表示计算机上USB插槽数量的数组;添加USB设备的方法add(USB
usb),功能为遍历所有插槽,如果有空闲的就添加一个USB设备
模拟开机启动USB设备的powerOn()方法,功能为遍历所有USB接口,如果连接了USB设备,则启动USB设备,
然后显示“计算机开机成功”
模拟关机关闭USB设备的powerOff()方法,功能为遍历所有USB接口,如果连接了USB设备,则关闭USB设备,
然后显示“计算机关机成功”
(4)编写测试类,要求建立计算机对象,建立鼠标、键盘、麦克风对象,并添加到计算机中,启动计算机,关闭计算机
这个题目涉及了对接口的定义以及实现,这是对接口的基础了解与应用,多个类可以实现同一个接口,但是实现的内容不一样,就像下面代码,同样实现USB接口,但是鼠标与键盘类实现出来执行的语句就不一样,这个题目可以让初学者初步了解与应用接口,对接口有一个比较深刻的印象。
代码:
import java.text.DecimalFormat;
import java.util.Scanner;
interface USB{void turnOn();void turnOff();
}
class Mouse implements USB{@Overridepublic void turnOn() {System.out.println("鼠标启动了");}@Overridepublic void turnOff() {System.out.println("鼠标关闭了");}
}
class Mic implements USB{@Overridepublic void turnOn() {System.out.println("麦克风启动了");}@Overridepublic void turnOff() {System.out.println("麦克风关闭了");}}
class Keyboard implements USB{@Overridepublic void turnOn() {System.out.println("键盘启动了");}@Overridepublic void turnOff() {System.out.println("键盘关闭了");}
}
class Computer{USB[] n=new USB[3];void add(USB usb){for (int i=0;i<3;i++)if (n[i]==null){n[i]=usb;break;}}void powerOn(){for (int i=0;i<3;i++)if (n[i]!=null)n[i].turnOn();System.out.println("计算机开机成功");}void powerOff(){for (int i=0;i<3;i++)if (n[i]!=null)n[i].turnOff();System.out.println("计算机关机成功");}}
public class ch01 {public static void main(String[] args){Computer computer=new Computer();USB mouse=new Mouse();USB keyboard=new Keyboard();USB mic=new Mic();computer.add(mouse);computer.add(keyboard);computer.add(mic);computer.powerOn();computer.powerOff();}}
java--继承--上转型--接口的实践作业--USB模拟器相关推荐
- java、上转型对象
1. 定义 如果B类是A类的子类或间接子类,当用B类创建对象b并将这个对象b的引用赋给A类对象a时,如: A a; a = new B(); OR A a; B b = new B(); a = b; ...
- java面向对象 接口和实现类_类实现java面向对象上:接口
最近应用开发的过程中出现了一个小问题,顺便记录一下原因和方法--类实现 10.接口: 接口的设计: 1.应用接口处理多继承: 2.应用接口为外部类添加功能: ...
- java 接口向上转型_JAVA-向上转型与向下转型在接口中的应用
先来看看定义: 向上转型(upcasting):子类引用的对象转换为父类类型称为向上转型. Father f= new Father(); son s=new son(); f=s; //Fa ...
- 「万字图文」史上最姨母级Java继承详解
原创公众号:「bigsai」 除公众号以外拒绝任意擅自转载 文章收录在bigsai公众号和回车课堂 课程导学 在Java课堂中,所有老师不得不提到面向对象(Object Oriented),而在谈到面 ...
- Java开发知识之Java中的集合上List接口以及子类讲解.
Java开发知识之Java中的集合类 一丶什么是集合类 如果你学习说数据结构,那么学习集合就很简单. 因为集合就是存储数据的结构. 例如 有链表结构 (list ) 还有 map结构.等等. 集合类就 ...
- Java中继承和面向接口的编程
继承是面向对象中很重要的概念.如果考虑到Java语言特性,继承分为两种:接口继承和实现继承.这只是技术层面的问题,即便C++中不存在接口的概念,但它的虚基类实际上也相当于接口.对于OO的初学者来说,他 ...
- 头歌实践-Java继承与多态
头歌实践作业 第1关:练习-Java继承和多态之final关键字 第2关:学习-Java继承和多态之对象类型的转换 任务描述 相关知识 向上转型 向下转型 编程要求 第3关:练习-Java继承和多态之 ...
- java继承接口和泛型,JavaSE习题 继承接口和泛型
问答题: 1.子类在什么情况下可以继承父类友好成员? 答:在同一个包内 2.子类通过怎样的方法可以隐藏继承的成员变量? 答:声明一个与父类相同变量名的成员变量 3.子类重写继承的方法原则是什么? 答: ...
- Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用
文章目录 泛型的概念 集合中使用泛型 自定义泛型结构 泛型在继承上的体现 通配符的使用 泛型的概念 集合容器类在设计阶段/声明阶段不能确定这个容器实际存的是什么类型的对象,所以在JDK1.5之前只能把 ...
最新文章
- python中x y表示_Python中表达式x += y和x = x+y 的区别详解
- JSON数据解析及gson.jar包
- bzoj1412[ZJOI2009]狼和羊的故事
- tp5获取mysql版本_TP5 + MySQL 应用地址选择
- NYOJ 116 士兵杀敌(二)
- KDDockWidgets源码编译及安装
- 大学英语期末考计算机上答卷,英语期末考试质量分析
- Java核心类笔记(字符串方法、StringBuilder(Joiner)、包装、JavaBean、枚举、Math、随机数)
- 【渝粤教育】电大中专Office办公软件 (5)作业 题库
- 苹果 M1 Pro 和 M1 Max 与原始 M1 相比性能如何?
- GPO 安装 .net 4.5和WMF4
- BZOJ 3192: [JLOI2013]删除物品 奇淫技巧树状数组
- unity序列帧动画
- opencv (C语言) 系列一:各函数基本应用及图片反色
- uniapp实现语音播放功能
- walking机器人仿真教程-激光导航-仿真单点导航
- Hibernate中Entity对象的重新加载refresh
- 【集合论】关系性质 ( 自反性 | 自反性定理 | 反自反性 | 反自反性定理 | 示例 )
- 29、RFM客户价值分析(有图有案例)
- Windows10家庭版 VMWare15 安装虚拟机启动时出现 蓝屏(而且重启)问题