创建包dev,在包内创建类CD、Props、PC、Notebook,再创建一个接口Computer,通过以下的步骤模拟电脑设备播放CD的过程 1.1在CD类中定义私有成员变量name和playTime,表示名称和播放分钟时长,为成员变量添加getter和setter方法,添加一个包含2个成员变量的构造方法,用于创建对象时设置名称和时长。 1.2Props类表示电脑设备的尺寸和是否带光驱属性,在Props类中定义两个protected成员变量:整型变量size和布尔类型变量widthCDDriver,添加一个带两个参数的构造方法。 1.3在接口Computer中定义两个void方法showScreent和playCD,其中showScreen方法没有参数,表示显示电脑的尺寸,playCD方法有一个参数,类型为CD,表示播放CD。 1.4PC类继承Props类并实现Computer接口,在类中定义两个参数的构造方法,在构造方法内直接调用父类的构造方法,传入参数。 重写showScreen方法,打印内容:PC电脑的尺寸是:xxx 重写playCD方法,如果电脑有光驱(widthCDDriver为true),打印内容:PC播放xxx,时长:xxx 如果电脑没有光驱,则打印:PC没有光驱,无法播放 上面的xxx需要打印实际的PC尺寸、CD名称和时长
时间: 2023-12-27 22:05:06 浏览: 36
好的,根据您的要求,我已经理解您的问题。下面是对应的Java代码实现:
```
package dev;
interface Computer {
void showScreen();
void playCD(CD cd);
}
class CD private String name;
private int playTime;
public CD(String name, int playTime) {
this.name = name;
this.playTime = playTime;
}
public String getName() {
return name;
}
public int getPlayTime() {
return playTime;
}
public void setName(String name) {
this.name = name;
}
public void setPlayTime(int playTime) {
this.playTime = playTime;
}
}
class Props {
protected int size;
protected boolean widthCDDriver;
public Props(int size, boolean widthCDDriver) {
this.size = size;
this.widthCDDriver = widthCDDriver;
}
}
class PC extends Props implements Computer {
public PC(int size, boolean widthCDDriver) {
super(size, widthCDDriver);
}
@Override
public void showScreen() {
System.out.println("PC电脑的尺寸是:" + size);
}
@Override
public void playCD(CD cd) {
if (widthCDDriver) {
System.out.println("PC播放" + cd.getName() + ",时长:" + cd.getPlayTime());
} else {
System.out.println("PC没有光驱,无法播放");
}
}
}
class Notebook extends Props implements Computer {
public Notebook(int size, boolean widthCDDriver) {
super(size, widthCDDriver);
}
@Override
public void showScreen() {
System.out.println("笔记本电脑的尺寸是:" + size);
}
@Override
public void playCD(CD cd) {
if (widthCDDriver) {
System.out.println("笔记本电脑播放" + cd.getName() + ",时长:" + cd.getPlayTime());
} else {
System.out.println("笔记本电脑没有光驱,无法播放");
}
}
}
public class Main {
public static void main(String[] args) {
CD cd = new CD("《时间煮雨》", 120);
PC pc = new PC(14, true);
Notebook notebook = new Notebook(13, false);
pc.showScreen();
pc.playCD(cd);
notebook.showScreen();
notebook.playCD(cd);
}
}
```
在这个例子中,我们首先定义了一个CD类,表示光盘。CD类中有两个私有成员变量name和playTime,表示名称和播放分钟时长,为成员变量添加了getter和setter方法,并添加了一个包含2个成员变量的构造方法,用于创建对象时设置名称和时长。
接下来,我们定义了一个Props类,表示电脑设备的尺寸和是否带光驱属性。在Props类中定义了两个protected成员变量:整型变量size和布尔类型变量widthCDDriver,并添加了一个带两个参数的构造方法。
在接口Computer中,我们定义了两个void方法showScreent和playCD,其中showScreen方法没有参数,表示显示电脑的尺寸,playCD方法有一个参数,类型为CD,表示播放CD。
PC类继承了Props类并实现了Computer接口。在PC类中,我们定义了两个参数的构造方法,在构造方法内直接调用父类的构造方法,传入参数。同时,我们重写了showScreen方法和playCD方法。
在Main类中,我们创建了一个CD对象、一个PC对象和一个Notebook对象,并依次调用它们的showScreen和playCD方法,模拟了电脑设备播放CD的过程。当PC对象有光驱时,我们调用了PC对象的playCD方法并成功播放了CD;当Notebook对象没有光驱时,我们调用了Notebook对象的playCD方法并提示无法播放。