设计程序 :
- 电脑类的属性USB接口数组 : 有3个usb插口
- 电脑类的功能 :
- 通过接口插入外设 (u盘,麦克风,键盘等)
addUSB(USB usb) {
} - 开机
要求: 电脑开机前,先启动外设 - 关机
要求: 电脑关机前,先关闭外设
- 外设类(u盘,麦克风,键盘等)
功能 : 启动 关闭
USB接口
定义usb设备的统一功能
开启() 关闭() - 效果 :
创建电脑对象,能插入外设,调用方法电脑开机,电脑开机前 外设启动,
电脑关机前,外设先关闭
UML类图
参考代码
Usb接口
package day529.homework;
/**
* Description: Usb接口
* date: 2024/5/29 20:51
* @author: LiCoffee
* @since JDK 1.8
*/
public interface Usb {
void open(); //打开外接设备
void close(); //关闭外接设备
}
UDisk 类实现 Usb 接口
package day529.homework;
public class UDisk implements Usb{
@Override
public void open() {
System.out.println("打开U盘");
}
@Override
public void close() {
System.out.println("关闭U盘");
}
}
Keyboard 类实现 Usb 接口
package day529.homework;
public class Keyboard implements Usb{
@Override
public void open() {
System.out.println("打开键盘");
}
@Override
public void close() {
System.out.println("关闭键盘");
}
}
Keyboard 类实现 Usb 接口
package day529.homework;
public class Microphone implements Usb{
@Override
public void open() {
System.out.println("打开麦克风");
}
@Override
public void close() {
System.out.println("关闭麦克风");
}
}
Computer 类
package day529.homework;
/**
* Description: 电脑类
* date: 2024/5/29 20:44
* @author: LiCoffee
* @since JDK 1.8
*/
public class Computer {
private int interfaceNum; //电脑接口数量
private Usb[] usbs; //接口数组
/**
* @descriptions 无参构造方法,默认为三个接口
* @author LiCoffee
* @date 2024/5/29 20:43
**/
public Computer() {
this(3);
usbs = new Usb[interfaceNum];//定义接口数量
}
/**
* @descriptions 有参构造方法,个性化定制接口数量
* @author LiCoffee
* @date 2024/5/29 20:47
* @param interfaceNum - 传入接口数量
**/
public Computer(int interfaceNum) {
this.interfaceNum = interfaceNum;
usbs = new Usb[interfaceNum];
}
public int getInterfaceNum() {
return interfaceNum;
}
public void setInterfaceNum(int interfaceNum) {
this.interfaceNum = interfaceNum;
}
/**
* @descriptions 插入设备
* @author LiCoffee
* @date 2024/5/29 20:48
* @param usb -插入设备类型
**/
public void addUsb(Usb usb){
for (int i = 0; i < usbs.length; i++) {
if (usbs[i] == null) {
usbs[i] = usb;
break;
}
}
}
/**
* @descriptions 打开电脑
* @author LiCoffee
* @date 2024/5/29 20:50
**/
public void open(){
System.out.println("电脑打开");
for (int i = 0; i < usbs.length; i++) {
if (usbs[i] == null) { //防止空指针异常
break;
}
usbs[i].open();
}
}
/**
* @descriptions 关闭电脑
* @author LiCoffee
* @date 2024/5/29 20:50
**/
public void close(){
for (int i = 0; i < usbs.length; i++) {
if (usbs[i] == null) { //防止空指针异常
break;
}
usbs[i].close();
}
System.out.println("电脑关闭");
}
}
Test 测试类
package day529.homework;
public class Test {
public static void main(String[] args) {
Computer computer = new Computer(); //创建电脑
computer.addUsb(new Keyboard()); //插入接口
computer.addUsb(new Microphone()); //插入接口
computer.addUsb(new UDisk()); //插入接口
computer.open(); //打开电脑
computer.close(); //关闭电脑
}
}
最后
如果感觉有收获的话,点个赞
标签:Usb,interfaceNum,void,编程,多态,接口,public,usbs From: https://blog.csdn.net/m0_73940426/article/details/139305616