Java接口案例

一案例要求:

二代码:(换方案只需要将操作类第二行的new新对象修改就能更改项目)

Ⅰ:(主函数)

package d1;

public class test {
    public static void main(String[] args) {
    operator a=new operator();
    a.show();
    a.average();
    }
}

Ⅱ:(实体类)

package d1;

public class student {
    private String name;
    private String sex;
    private double score;

    public student() {
    }

    public student(String name, String sex, double score) {
        this.name = name;
        this.sex = sex;
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }
}

Ⅲ:(操作类)

package d1;

import java.util.ArrayList;

public class operator {
    private ArrayList<student> arrayList=new ArrayList<>();
    private choice a=new oper2();
    public operator() {
        arrayList.add(new student("孙悟空","男",12));
        arrayList.add(new student("紫霞","女",66));
        arrayList.add(new student("牛魔王","男",6));
        arrayList.add(new student("山神","男",99));
    }
    public void show(){
        a.show(arrayList);
    }
    public void average(){
        a.average(arrayList);
    }
}

Ⅳ:(接口)

package d1;

import java.util.ArrayList;

public interface choice {
    public void show(ArrayList<student> arrayList);
    public void average(ArrayList<student> arrayList);
}

Ⅴ:(实现类1)

package d1;

import java.util.ArrayList;

public class oper1 implements choice{

    @Override
    public void show(ArrayList<student> arrayList) {
        for (int i = 0; i < arrayList.size(); i++) {
            System.out.println("姓名 "+arrayList.get(i).getName()+"    性别 "+arrayList.get(i).getSex()+"    成绩 "+arrayList.get(i).getScore());
        }
    }

    @Override
    public void average(ArrayList<student> arrayList) {
        double sum=0;
        for (int i = 0; i < arrayList.size(); i++) {
            sum+=arrayList.get(i).getScore();
        }
        System.out.println("平均成绩为  "+sum/arrayList.size());
    }
}

Ⅵ:(实现类2)

package d1;

import java.util.ArrayList;

public class oper2 implements choice {
    @Override
    public void show(ArrayList<student> arrayList) {
        int a1=0,a2=0;
        for (int i = 0; i < arrayList.size(); i++) {
            System.out.println("姓名 "+arrayList.get(i).getName()+"    性别 "+arrayList.get(i).getSex()+"    成绩 "+arrayList.get(i).getScore());
            if (arrayList.get(i).getSex().equals("男")){
                a1++;
            }else a2++;
        }
        System.out.println("男生人数  "+a1+"  女生人数  "+a2);
    }

    @Override
    public void average(ArrayList<student> arrayList) {
        double sum=0,max=arrayList.get(0).getScore(),min=arrayList.get(0).getScore();
        for (int i = 0; i < arrayList.size(); i++) {
            sum+=arrayList.get(i).getScore();
            if (arrayList.get(i).getScore()>=max){
                max=arrayList.get(i).getScore();
            }
            if(arrayList.get(i).getScore()<=min){
                min=arrayList.get(i).getScore();
            }
        }
        System.out.println("平均成绩为  "+(sum-max-min)/(arrayList.size()-2));
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue在一个页面调用另一个同级页面的方法

1、建个中转站 2、然后在两个页面都引入它&#xff0c;注意引入路径。 import Utils from src/utils/way 3、调用方的写法 //eg :Utils.$emit(demo, msg) 4、被调用方的写法 //eg :Utils.$on(demo, val>{})

想要制作自己的歌曲伴奏?提取伴奏人声分离软件我用这几款

在音乐制作、翻唱创作或是学术研究等领域&#xff0c;将人声与伴奏分离是一项常见的需求。随着这两年 AI 技术的发展&#xff0c;现在有许多软件和工具可以帮助用户实现这一目标&#xff0c;无需专业的音频编辑知识。本文将重点介绍简鹿人声分离工具以及其他几款知名的人声伴奏…

数据库第四次练习

数据准备 创建两张表&#xff1a;部门&#xff08;dept&#xff09;和员工&#xff08;emp&#xff09;&#xff0c;并插入数据&#xff0c;代码如下 create table dept( dept_id int primary key auto_increment comment 部门编号, dept_name char(20) comment 部门名称 ); in…

全现金!6.65亿美刀!AMD大手一挥收购欧洲最大私人AI实验室

当地时间2024年7月10日&#xff0c;AMD宣布&#xff0c;他们刚刚签署了一项最终协议&#xff0c;豪掷6.65亿美刀收购欧洲最大的私人人工智能实验室Silo AI&#xff0c;而且还是全现金收购&#xff01; 据AMD官网报道&#xff0c;该协议代表着该公司基于开放标准并与全球人工智…

IAR全面支持芯驰科技E3系列车规MCU产品E3119/E3118

中国上海&#xff0c;2024年7月11日 — 全球领先的嵌入式系统开发软件解决方案供应商IAR与全场景智能车芯引领者芯驰科技宣布进一步扩大合作&#xff0c;最新版IAR Embedded Workbench for Arm已全面支持芯驰科技的E3119/E3118车规级MCU产品。IAR与芯驰科技有着悠久的合作历史&…

【精简教程】VSCode 连接 Remix

初始化 Node.js 项目 yarn init v1.22.19安装 Remix yarn add remix-project/remixd -g⚠️ 此时如果直接敲 remix&#xff0c;显示找不到这个命令。 使用 Node.js 来直接执行 remixd.js 文件 node node_modules\remix-project\remixd\src\bin\remixd.js&#x1f604; 连接上了…

tasking软件许可优化解决方案

Tasking软件介绍 TASKING SmartCode是用于英飞凌下一代AURIX™ TC4x微控制器家族的开发解决方案。SmartCode产生快速并且紧凑的代码&#xff0c;是唯一全面支持TC4x全部架构和内核的软件开发平台。英飞凌AURIXTM提供了实现ECU所需的处理能力、外设支持和安全/安全机制。 所有开…

独立站营销新思路:携手TikTok达人,促进用户参与与品牌传播

数字化时代&#xff0c;品牌传播的方式发生了重大变化。尤其是TikTok&#xff0c;作为全球最受欢迎的短视频平台之一&#xff0c;其独特的社群特点和用户行为模式&#xff0c;对品牌独立站提供了全新的营销思路。本文Nox聚星将和大家分析TikTok社群的特点和用户行为模式&#x…

let/const/var的区别及理解

在JavaScript中&#xff0c;let、const 和 var 是用来声明变量的关键字&#xff0c;但它们之间在作用域、变量提升、重复声明等方面存在区别&#xff0c;详细情况如下: 1. let、const、var 的区别 (1) 块级作用域 let 和 const&#xff1a;具有块级作用域&#xff0c;由 {} 包…

pico+unity3d搭建环境

分别注册pico开发者平台和unity的账号密码 下载pico的sdk和unity开发软件 创建unity3d核心项目 在项目中找到窗口&#xff0c;包管理器&#xff0c;添加磁盘的包&#xff0c;选中sdk 安装后就可以使用pico的操作和演示&#xff1b; 剩下的看文档

JVM:类加载器

文章目录 一、什么是类加载器 一、什么是类加载器 类加载器&#xff08;ClassLoader&#xff09;是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。类加载器只参与加载过程总的字节码获取并加载到内存这一部分。

中职网络安全B模块渗透测试server2380

使用nmap扫描添加参数-sV Flag:2.4.38 添加参数-A不然扫不全 &#xff08;这两题可以直接加-sV -A&#xff09; Flag: 4.3.11-Ubuntu 根据nmap扫描发现系统为ubuntu系统&#xff0c;ubuntu操作系统在某些版本中默认包含一个名为"ubuntu"的用户帐户。这是为了方…

电脑硬盘分区及合并指南

电脑硬盘分区是指将一个硬盘划分成多个独立的区域&#xff0c;每个区域可以被操作系统单独管理和使用&#xff0c;我们可以根据需要将数据分类存储&#xff0c;例如将系统文件、个人文件和多媒体内容分别存放在不同的分区中。合理的分区不仅可以提升系统性能&#xff0c;还能提…

硬盘模式vmd怎么改ahci_电脑vmd改ahci模式详细步骤

最近有很多网友问&#xff0c;我新买的电脑安装原版win10或win11找不到驱动器呀&#xff0c;进入第三方pe又找不到硬盘&#xff0c;找到硬盘安装后又出现安装蓝屏的情况&#xff0c;新机器怎么回事呀&#xff1f;这位网友内心有点崩溃&#xff0c;不知道啥原因。其实这些都是由…

洛谷P1498 南蛮图腾[递归好题]

南蛮图腾 题目背景 自从到了南蛮之地&#xff0c;孔明不仅把孟获收拾的服服帖帖&#xff0c;而且还发现了不少少数民族的智慧&#xff0c;他发现少数民族的图腾往往有着一种分形的效果&#xff0c;在得到了酋长的传授后&#xff0c;孔明掌握了不少绘图技术&#xff0c;但唯独…

金龙鱼:只是躺枪?

中储粮罐车运输油罐混用事件持续发酵&#xff0c;食用油板块集体躺枪。 消费者愤怒的火&#xff0c;怕是会让食用油企们一点就着。 今天&#xff0c;我们聊聊“油”茅——金龙鱼。 一边是业内人士指出&#xff0c;油罐混用的现象普遍存在&#xff0c;另一边是金龙鱼回应称&am…

【Linux】进程的基本概念(以及进程地址空间的初步了解)

目录 一.什么是进程 进程和程序的区别 Linux查看进程 进程的信息 fork函数 二.进程状态 操作系统上进程状态的概念 运行 阻塞 挂起 Linux中的进程状态 R状态 S状态和D状态 T状态 t状态 X状态 Z状态 三.进程的优先级 修改进程优先级 四.环境变量 常见的环境变量 PATH HOME PW…

谷粒商城实战-25-分布式组件-SpringCloud Alibaba-Nacos配置中心-加载多配置集

文章目录 一&#xff0c;拆分配置集二&#xff0c;配置文件中配置多配置集1&#xff0c;引用多配置集2&#xff0c;验证 三&#xff0c;多配置集总结1&#xff0c;使用场景2&#xff0c;优先级 这一节介绍如何加载多个配置集。 大多数情况下&#xff0c;我们把配置全部放在一个…

批量提取网页表格内容至excel文件

问题背景 将网页的表格内容&#xff08;5237个股票信息&#xff09;复制粘贴到excel文件中 网址&#xff1a;A股上市公司名单-A股上市公司名录-A股上市公司大全-商业计划书-可研报告-中商产业研究院数据库-中商情报网 实现代码 # 导入包 import pandas as pd import time# 创…

ATT 和 GATT:数据表示和交换

背景介绍 BLE的通信和以太网&#xff0c;wifi有个重大的不同是&#xff1a;BLE通信的设备往往有特定的功能。且这个功能不会在运行中发生变化。 因此蓝牙设备通信的时候&#xff0c;只能访问预先定义好的&#xff08;也就是配置文件profile&#xff09;的功能。 那profile里写…