实现思路
定义计算机组成部分定义CPU的接口CPU,返回CPU品牌和主频
定义内存的接口EMS,返回容量
定义硬盘接口HardDsik,返回容量实现计算机各组件信息编写各组件厂商分别实现CPU EMS 和HardDisk接口,编写计算机类,组装计算机并显示相关信息
编写测试类运行
定义CPU的接口CPU、定义内存的接口EMS、定义硬盘接口HardDsik
/**
* cpu接口
* 返回品牌
* 返回主频
*/
public interface CPU {
String getStrain();
String getGHZ();
}
/**
* 内存接口
* 返回容量
*/
public interface EMS{
int getEMSsize();
}
/**
* 硬盘接口
* 返回容量
*/
public interface HardDisk {
int getHDsize();
}
编写各组件厂商分别实现CPU EMS 和HardDisk接口
/**
* 因特尔CPU
* 品牌:inter
* 主频:3.8GHZ
*/
public class InterCPU implements CPU {
@Override
public String getStrain() {
return "Inter";
}
@Override
public String getGHZ() {
return "3.8GHZ";
}
}
/**
* AMD Ryzen 5
* 品牌:Ryzen 5
* 主频:3.4GHZ
*/
public class Ryzen5CPU implements CPU {
@Override
public String getStrain() {
return "Ryzen 5";
}
@Override
public String getGHZ() {
return "3.4GHZ";
}
}
/**
* 4G大容量内存
*/
public class BigEMs implements EMS {
@Override
public int getEMSsize() {
return 4;
}
}
/**
* 金士顿内存
* 8GB
*/
public class KstEMS implements EMS {
@Override
public int getEMSsize() {
return 8;
}
}
/**
* 东芝硬盘
* 1000
*/
public class DZHardDisk implements HardDisk {
@Override
public int getHDsize() {
return 1000;
}
}
/**
* 3000G硬盘
*/
public class FGHardDisk implements HardDisk {
@Override
public int getHDsize() {
return 3000;
}
}
编写计算机类,组装计算机并显示相关信息
/**
* 装配电脑
*/
public class Computer {
private CPU cpu;
private EMS ems;
private HardDisk hardDisk;
public CPU getCpu() {
return cpu;
}
public void setCpu(CPU cpu) {
this.cpu = cpu;
}
public EMS getEms() {
return ems;
}
public void setEms(EMS ems) {
this.ems = ems;
}
public HardDisk getHardDisk() {
return hardDisk;
}
public void setHardDisk(HardDisk hardDisk) {
this.hardDisk = hardDisk;
}
public Computer(CPU cpu, EMS ems, HardDisk hardDisk){
super();
this.cpu=cpu;
this.ems=ems;
this.hardDisk=hardDisk;
}
public void show(){
System.out.println("计算机信息如下");
System.out.println("CPU的品牌是:"+cpu.getStrain()+",主频是:"+cpu.getGHZ());
System.out.println("内存容量是:"+ems.getEMSsize()+"GB");
System.out.println("硬盘容量是:"+hardDisk.getHDsize()+"GB");
}
}
编写测试类运行
/**
* 测试类
*/
public class Test {
public static void main(String[] args) {
CPU cpu=new InterCPU();
EMS ems=new BigEMs();
HardDisk hardDisk=new FGHardDisk();
Computer computer=new Computer(cpu,ems,hardDisk);
computer.show();
System.out.println("*********************");
// cpu=new Ryzen5CPU();
// ems=new KstEMS();
// hardDisk=new DZHardDisk();
// computer=new Computer(cpu,ems,hardDisk);
computer.setCpu(new Ryzen5CPU());
computer.show();
}
}
运行效果:
计算机信息如下
CPU的品牌是:Inter,主频是:3.8GHZ
内存容量是:4GB
硬盘容量是:3000GB
*********************
计算机信息如下
CPU的品牌是:Ryzen 5,主频是:3.4GHZ
内存容量是:4GB
硬盘容量是:3000GB