运用接口实现计算机各组件信息

实现思路

  • 定义计算机组成部分
  1. 定义CPU的接口CPU,返回CPU品牌和主频
  2. 定义内存的接口EMS,返回容量
  3. 定义硬盘接口HardDsik,返回容量
  •  实现计算机各组件信息
  1.  编写各组件厂商分别实现CPU EMS 和HardDisk接口,编写计算机类,组装计算机并显示相关信息
  2. 编写测试类运行

 定义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

你可能感兴趣的:(接口,面向对象,java)