当前位置: 首页 > news >正文

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{@Overridepublic 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());}}@Overridepublic 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 {@Overridepublic 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);}@Overridepublic 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));}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • HTML 标签简写和全称及其对应的中文说明和实例
  • SQL MySQL定时器/事件调度器(Event Scheduler)
  • Deepspeed : AttributeError: ‘DummyOptim‘ object has no attribute ‘step‘
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • 7.深度学习概述
  • Java毕业设计 基于SSM vue图书管理系统小程序 微信小程序
  • Armbian 1panel面板工具箱中FTP服务无法正常启动的解决方法
  • C#中的MD5摘要算法与哈希算法
  • 赛蓝企业管理系统DownloadBuilder接口任意文件读取漏洞复现 [附POC]
  • TQSDRPI开发板教程:编译openwifi工程
  • OSPF实验
  • imx6ull/linux应用编程学习(16)emqx ,mqtt创建连接mqtt.fx
  • 全网最全AI绘画 StablDiffusion系列进阶篇-ControlNet插件介绍
  • java设计模式(十五)命令模式(Command Pattern)
  • 视频减小技巧:十大顶级视频压缩软件
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • eclipse(luna)创建web工程
  • MySQL的数据类型
  • 工作中总结前端开发流程--vue项目
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 回流、重绘及其优化
  • 开源SQL-on-Hadoop系统一览
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 系统认识JavaScript正则表达式
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 译自由幺半群
  • ​油烟净化器电源安全,保障健康餐饮生活
  • (2)STM32单片机上位机
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • .bat批处理(一):@echo off
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .Net MVC + EF搭建学生管理系统
  • .NET 动态调用WebService + WSE + UsernameToken
  • .net 怎么循环得到数组里的值_关于js数组
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET的微型Web框架 Nancy
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • /bin/bash^M: bad interpreter: No such file or directory
  • /etc/shadow字段详解
  • ??eclipse的安装配置问题!??
  • @ModelAttribute 注解
  • @Value获取值和@ConfigurationProperties获取值用法及比较(springboot)
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [C++]类和对象(中)
  • [CF]Codeforces Round #551 (Div. 2)
  • [CISCN2019 华东南赛区]Web11
  • [CVPR2021]Birds of a Feather: Capturing Avian Shape Models from Images
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效