实现思路

定义计算机组成部分定义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

计算机接口教程,运用接口实现计算机各组件信息相关推荐

  1. 新编大学计算机基础教程txt,新编大学计算机基础教程新大学计算机基础教程.doc...

    新编大学计算机基础教程新大学计算机基础教程 <新编大学计算机基础教程>教学设计设计人:hbx基本信息课时:75 课程类型:新编大学计算机基础教程学分:10后续课程:组网技术.操作系统课程设 ...

  2. 计算机网络应用教程吴小钧,计算机网络应用教程

    <高等学校"十二五"规划教材·计算机类:计算机网络应用教程>共9章,系统全面地介绍了计算机网络的基本概念.数据通信的基本概念.计算机网络协议和计算机网络体系结构.局域网 ...

  3. 大学计算机实验教程实验6,大学计算机实验教程.第6版

    摘要: <大学计算机实验教程(第6版)/高等学校计算机基础教育教材精选>是"十一五"国家级规划教材,北京市教学成果奖教材,北京市精品教材<大学计算机教程(第6版) ...

  4. 计算机入门教程 office2007入门,大学计算机基础教程Office2007版.PPT

    大学计算机基础教程Office2007版.PPT 5.2 创建演示文稿 演示文稿是由一张张独立的幻灯片组成的,把幻灯片放在一起进行逐张播放,就形成了演示文稿.演示文稿可以应用于很多方面,比如演示课件. ...

  5. 计算机实用教程pdf,《新编计算机实用教程》.pdf

    (第2 版) 本书编委会 编 [内容简介]本书是为计算机基础教学和计算机短训班编写的基础教材.特点是基于Windows 环境, 强调其实用性.其主要内容包括计算机基础知识.中文 Windows 98/ ...

  6. 计算机基础教程试题及答案,计算机基础教程考试题「附答案」

    一.单选题 1.以下几种说法正确的是________. A:ADSL接入Internet有虚拟拨号和专线接入两种方式 B:拨号接入Internet的速度可以达到56Mbps C:只要接入局域网就可以接 ...

  7. 大一大学计算机基础教程课后答案,大学计算机基础教程课后习题答案大一

    计算机基础作业 第一章计算机与信息社会 习题1 一.思考题: 1.计算机的发展经历了哪几个阶段?各阶段的主要特征是什么? 答:计算机经历了电子管.晶体管.中小规模集成电路和大.超大规模集成电路等4个阶 ...

  8. 大学计算机基础教程实验答案,大学计算机基础试验教程习题参考答案

    <大学计算机基础试验教程习题参考答案>由会员分享,可在线阅读,更多相关<大学计算机基础试验教程习题参考答案(4页珍藏版)>请在人人文库网上搜索. 1.大学计算机基础实验教程习题 ...

  9. 新编计算机基础教程 pdf,《新编计算机公共基础教程(Windows-2000版)》.pdf

    高职高专计算机课程教材 本书编委会 编 [内容提要]本书是为计算机基础教学和广大电脑爱好者自学而编写的教材.它介绍了当今 流行的 Windows 98/Me/2000/XP 操作平台及 Word 20 ...

最新文章

  1. 将现有网站与Community Server2.0整合解决方案(原创)
  2. 认识Python(day01)
  3. 集群搭建:CentOS 7 模板机封装、配置静态 IP、简单优化
  4. R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归
  5. android 关闭蓝牙打电话功能,Android蓝牙开发【八】hfp接听、挂断电话
  6. 可以用什么代替平面镜
  7. unity 竖屏不能全屏显示
  8. java接口自动化框架_java接口自动化测试框架及断言详解
  9. 数据库学习笔记【自学教程】—— 如何建立数据库
  10. 三菱PLC 串口通信开发心得经验
  11. java使用163邮箱完成发送邮件完成注册
  12. python自动化看什么书_《Python编程快速上手:让繁琐工作自动化》(异步图书出品)...
  13. 怎么把linux装入移动硬盘,把Ubuntu装进你的移动硬盘中
  14. dds导入Unreal 4
  15. CENTOS上的时间/时区设定
  16. 12306订票候补是个坑_重磅!12306候补购票正式上线,实测你可能连排队的机会都没有!...
  17. 安装MikTex并成功编译中文PPT模板详细过程
  18. 中兴手机数据通道打不开_中兴td-lte无线数据终端闪着绿灯 但是上不了网是怎么回事...
  19. MFC中单文档程序框架
  20. 怎么快速暂停Google账户广告系列?

热门文章

  1. 前端学习(478):前端简介2
  2. spring学习(50):延迟加载
  3. java学习(19):巩固练习
  4. 实例2:python
  5. Qt 编写应用程序升级的配置文件json 生成工具
  6. elementUI的DatePicker+DateTimePicker组件的自定义日期禁用
  7. Mac不装软件校验MD5和SHA1值
  8. Hadoop 集群的三种方式
  9. Python代写CSSE1001/7030 python程序作业、代做python CSSE1001/7030程序作业、 代写CSSE1001/7030 python 作业...
  10. 记一次MySQL手工注入