模拟电脑组装,不同的电脑组装需要实现CPU接口,硬盘接口和内存接口。恰当设计类与接口,以及其关系,实现电脑的组装,输出正确的结果(选做)
时间: 2024-10-14 21:02:25 浏览: 0
在模拟电脑组装的过程中,我们可以创建一系列类和接口来表示电脑的不同组件和它们之间的连接。首先,我们定义一些基本的接口:
1. **Component** (组件): 它是一个基础接口,所有电脑部件都需要实现这个接口,包含通用属性如名称和状态。
```java
public interface Component {
String getName();
boolean isInstalled();
}
```
2. **CPU** (中央处理器): 实现`Component`接口,并添加特定于CPU的属性,如型号、频率等。
```java
public class CPU implements Component {
private String model;
private int frequency;
// getters and setters
}
```
3. **HDD** (硬盘): 同样继承自`Component`,有硬盘容量、转速等属性。
```java
public class HDD implements Component {
private String capacity;
private int rpm;
// getters and setters
}
```
4. **RAM** (随机存取内存): 类似地,`RAM`接口代表内存组件。
```java
public class RAM implements Component {
private int sizeInMB;
// getters and setters
}
```
然后,创建一个表示电脑配置的接口:
5. **ComputerSystem** (电脑系统):
```java
public interface ComputerSystem {
void installComponent(Component component);
void removeComponent(Component component);
}
```
6. **DesktopComputer** (台式机): 继承自`ComputerSystem`并实现安装和移除部件的方法。
```java
public class DesktopComputer extends ComputerSystem {
private List<Component> components = new ArrayList<>();
@Override
public void installComponent(Component component) {
if (!components.contains(component)) {
components.add(component);
System.out.println("安装了 " + component.getName());
} else {
System.out.println("组件已存在");
}
}
// ...其他方法...
}
```
7. **LaptopComputer** (笔记本电脑): 可能会有不同的组件接口,但同样遵循装配原则。
```java
public class LaptopComputer extends ComputerSystem {
// ...类似 DesktopComputer 的实现...
}
```
为了模拟组装过程,你可以这样做:
```java
public static void main(String[] args) {
DesktopComputer desktop = new DesktopComputer();
CPU cpu = new CPU("Intel i5", 3.0); // 创建部件实例
HDD hdd = new HDD("1TB", 5400); // ...
RAM ram = new RAM(8 * 1024); // ...
desktop.installComponent(cpu);
desktop.installComponent(hdd);
desktop.installComponent(ram);
// ...更多组装操作...
// 示例输出
for (Component component : desktop.components) {
System.out.println(component.getName() + ": " + component.isInstalled());
}
}
```