Java面向接口编程(例题+知识点)

news2024/9/23 13:29:18

题目:

采用面向接口编程思想组装一台计算机
计算机的主要组成部分
CPU
硬盘
内存

代码解析:

1.参数类型为 CPU 是因为它是一个接口。接口类型参数的主要好处是它使方法具有更好的灵活性和可扩展性。你可以传入任何实现了 CPU 接口的类的实例。

2.使用接口作为参数类型使你的代码更灵活,因为你可以在运行时传递不同的实现类,增强了代码的可重用性

3.CPU接口,EMS接口,HardDisk接口只提供了一个标准,面向接口就是面向标准,我们并不关心它们的具体实现,每一块都只管自己那部分,交给实例来分别组装

4.每个接口定义了某些功能,而具体的实现类提供了这些功能的具体细节

代码:

CPU接口,EMS接口,HardDisk接口:

public interface CPU {
    String brandCpu();
    String zhuPin();
}

public interface EMS {
    String infoEMS();
}

public interface HardDisk {
    Integer capacity();
}

myCPU类,myEMS类,myHardDisk类分别实现上面的接口:

public class myCpu implements CPU{

    public String brandCpu(){

        return "Intel";

    }


    public String zhuPin(){

        return "3.8GHz";

    }
}
public class myEMS implements EMS{

    public String infoEMS(){
       return "4GB";
    }
}
public class myHardDisk implements HardDisk {

    public  Integer capacity(){

        return 3000;
    }
}

Cpmputer类:

public class MyComputer {
    public static void main(String[] args) {
        CPU cpu = new myCpu();
        EMS ems = new myEMS();
        HardDisk hardDisk = new myHardDisk();
        Computer computer = new Computer();
        computer.printInfo(cpu,hardDisk,ems);
    }
}

测试类:实例化一台电脑:

public class MyComputer {
    public static void main(String[] args) {
        CPU cpu = new myCpu();
        EMS ems = new myEMS();
        HardDisk hardDisk = new myHardDisk();
        Computer computer = new Computer();
        computer.printInfo(cpu,hardDisk,ems);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

博达网站群管理平台 v6.0使用相关问题解决

1 介绍 最近受人所托,需要用博达网站群管理平台创建一个网站。该平台的内部版本为9.8.2。作为一个能直接从代码创建网站系统的人,初次使用本平台,刚开始感觉摸不着头脑。因为该平台存在的目的,就是让不懂代码的人能快速创建网站&…

记录xserver做域名,腾讯云做服务器的域名解析流程

以下为个人理解,请多指教 主域名 1.在Xserver买好域名后,会要求需要购买它们的服务器,因为server域名与server服务器是绑定关系 2.在腾讯云的“云解析DNS”添加域名,为自己购买的主域名abc.com 3.解析并生效 一般为www&#xff…

TransRepair

TransRepair: Context-aware Program Repair for Compilation Errors 基本信息 ASE 22: 37th IEEE/ACM International Conference on Automated Software Engineering 博客贡献人 页禾七 作者 Xueyang Li,Shangqing Liu,Ruitao Feng,Gu…

qt-17不规则窗体

不规则窗体 知识点shape.hshape.cppmain.cpp运行图 知识点 感觉这个就是在图片背景 贴了白色 shape.h #ifndef SHAPE_H #define SHAPE_H#include <QWidget>class Shape : public QWidget {Q_OBJECTpublic:Shape(QWidget *parent nullptr);~Shape(); protected:void m…

【开源社区】Elasticsearch(ES)中 exists 查询空值字段的坑

文章目录 1、概述2、使用 null_value 处理空值3、使用 exists 函数查询值为空的文档3.1 使用场景3.2 ES 中常见的空值查询方式3.3 常见误区3.4 使用 bool 查询函数查询空值字段3.5 exists 函数详解3.5.1 bool 查询的不足3.5.3 exists 的基本使用 3.6 完美方案 1、概述 本文主要…

环网交换机 环网数采仪 环网采集器确保数据传输无懈可击!

计讯物联Pro级双向防护&#xff0c;升级环网采集器确保数据传输无懈可击&#xff01; 在物联网(IoT)的世界里&#xff0c;数据流动如同城市交通&#xff0c;需要高效且可靠的网络来支撑。但就像城市交通可能遇到意外拥堵或道路封闭&#xff0c;传统网络在数据传输上也会遇到障…

Redis RDB三两事

rdb&#xff1a;将数据库的快照以二进制格式保存在文件中&#xff0c;redis重启后直接加载数据。可以通过save和bgsave命令生成rdb。当然我们可以在生成rdb文件时指定规则&#xff0c;例如 save 60 1000 如果60秒内不少于1000个key发生了改动&#xff0c;则生成一个新的rdb文件…

苹果电脑能玩Steam游戏吗?Steam对苹果笔记本要求高吗 steam苹果下载安装教程

对于游戏爱好者而言&#xff0c;如何在Mac上安装并使用Steam玩游戏成为一个重要的问题&#xff0c;Steam作为全球最大的数字发行平台和游戏社区&#xff0c;为玩家提供了丰富的游戏资源和社交交流平台。然而&#xff0c;由于Mac和Windows系统之间存在差异&#xff0c;很多人不确…

Linux进程间通信方式对比

参考&#xff1a; Linux进程间通信总结-百度开发者中心 Linux操作系统提供了多种进程间通信&#xff08;IPC&#xff09;的方式&#xff0c;每种方式都有其独特的应用场景和优缺点。下面将对Linux下的进程间通信方式进行总结和比较。 管道&#xff08;Pipe&#xff09; 管道是最…

小白学大模型:GLM 调用教程

最近这一两周看到不少互联网公司都已经开始秋招提前批面试了。 不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c;帮助一些…

计算机网络:DNS、子网掩码、网关

参考&#xff1a; https://blog.csdn.net/weixin_55255438/article/details/123074896 https://zhuanlan.zhihu.com/p/65226634 在计算机网络中&#xff0c;DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;、子网掩码&#xff08;Subnet Mask&#xff09;…

优化RoBERTa:在AMD上使用混合精度进行微调

Optimizing RoBERTa: Fine-Tuning with Mixed Precision on AMD — ROCm Blogs 简介 在这篇博客中&#xff0c;我们将探讨如何微调鲁棒优化的BERT预训练方法&#xff08;[RoBERTa](https://arxiv.org/abs/1907.11692)&#xff09;大型语言模型&#xff0c;重点在于PyTorch的混…

遥感之大豆提取

主要记录大豆提取常用的光学以及sar等特征&#xff0c;以便在实验中实现考虑以下特征得到初步结果&#xff0c;在其基础上进行不同维度的优化。 参考文献**<Mapping annual 10-m soybean cropland with spatiotemporal sample migration>** 文档总体描述&#xff1a; …

Java类的加载器分类

启动类加载器 使用-XX:TraceClassLoading参数得到 扩展类加载器 应用程序类加载器 用户自定义类加载器 测试不同类的加载器

高性能web服务器--nginx

下载nginx [rootnginx ~]# wget -c https://nginx.org/download/nginx-1.24.0.tar.gz [rootnginx ~]# tar zxf nginx-1.24.0.tar.gz创建nginx用户 [rootnginx nginx-1.24.0]# useradd -s /sbin/nologin -M nginx先安装依赖 dnf install gcc pcre-devel zlib-devel openssl-d…

来了...腾讯内推的软件测试面试PDF 文档(共107页)

不多说&#xff0c;直接上干货&#xff08;展示部分以腾讯面试纲要为例&#xff09;完整版文末领取 通过大数据总结发现&#xff0c;其实软件测试岗的面试都是差不多的。常问的有下面这几块知识点&#xff1a; 全网首发-涵盖16个技术栈 第一部分&#xff0c;测试理论&#x…

C++:平衡二叉搜索树之红黑树

一、红黑树的概念 红黑树&#xff0c; 和AVL都是二叉搜索树&#xff0c; 红黑树通过在每个节点上增加一个储存位表示节点的颜色&#xff0c; 可以是RED或者BLACK&#xff0c; 通过任何一条从根到叶子的路径上各个节点着色方式的限制&#xff0c;红黑树能够确保没有一条路径会比…

黑马头条vue2.0项目实战(九)——编辑用户资料

目录 1. 创建组件并配置路由 2. 页面布局 3. 展示用户信息 4. 修改昵称 5. 修改性别 6. 修改生日 7. 修改头像 7.1 图片上传预览 7.2 使用纯客户端的方式处理用户头像上传预览 7.3 头像裁切 7.4 纯客户端的图片裁切上传流程 7.5 Cropper.js 图片裁剪器的基本使用 …

盘点.软件测试工程师常见的面试题。面试官说我要定你了!

今天我们来聊聊软件测试工程师的面试题有哪些&#xff0c;2024年的8月份马上就过完了&#xff0c;金九银十就业季&#xff0c;跳槽季马上又要来了&#xff0c;毕竟在面试的战场上&#xff0c;知己知彼方能百战不殆。嗯嗯&#xff0c;不错说的真好&#xff01; 1、您所熟悉的测试…

24/8/15算法笔记 项目练习冰湖

import gym from matplotlib import pyplot as plt %matplotlib inline import os os.environ[SDL_VIDEODRIVER]dummy #设置环境变量 SDL_VIDEODRIVERdummy 是在使用基于 SDL (Simple DirectMedia Layer) 的应用程序时&#xff0c;告诉应用程序不使用任何视频驱动程序。这通常…