最近打算将之前学习过的小练习分享出来,算是巩固知识。虽然是小练习,但是越看越觉得有趣,温故而知新。

练习:功能跳水比赛,8个评委评分。运动员成绩去掉最高和最低之后的平均分

代码实例:

1.导包

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

2.测试类

public class Demo6 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Judge judge=new Judge();
//judge.getLastFen(); 不打印,怎么出结果哦
System.out.println(judge.getLastFen()); }
}

3.Judge类(封装方法,很好的面向对象编程)

class Judge {
// 定义一个可以存放8个小数
float fens[] = null;
// 在这里定义,方便以后改
int size = 8; // 构造函数代码初始化专用,显得更加规范
public Judge() {
fens = new float[size];
// 初始化
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// for(int i=0;i<fens.length;i++){
// 不能写在这里:System.out.println("请输入第"+(i+1)+"裁判的分数");
try {
for (int i = 0; i < fens.length; i++) {
System.out.println("请输入第" + (i + 1) + "裁判的分数"); fens[i]=Float.parseFloat(br.readLine());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } // 得到运动员的最后得分
public float getLastFen() {
// 功能:
// 找到最低、最高(没办法去掉,只能找到它的下标)以及去掉最低最高得出最后得分
float allFen = 0;
int minIndex = this.getLowFenIndex();
int maxIndex = this.getHightFenIndex();
for (int i = 0; i < fens.length; i++) {
if (i != minIndex && i != maxIndex) {
allFen += fens[i];
}
} return allFen / (fens.length - 2); } public int getLowFenIndex() {
// 选择法:认为第一个是最低分
float minFen = fens[0];
int minIndex = 0; for (int i = 1; i < fens.length; i++) {
// 修改最低分
if (minFen < fens[i]) {
minFen = fens[i];
minIndex = i;
}
}
return minIndex;
} public int getHightFenIndex() {
// 选择法:认为第一个是最低分
float maxFen = fens[0];
int maxIndex = 0;
for (int i = 1; i < fens.length; i++) {
// 修改最低分
if (maxFen < fens[i]) {
maxFen = fens[i];
maxIndex = i;
}
}
return maxIndex;
}
}

另外,最近觉得泛型真的是一个很神奇的存在。设计者当初是怎么想到的呢?!聪明死了。

泛型可以用不确定的类型来表示任意的类型。简直大赞!!!

Java 面向对象编程小练习(曾经)的更多相关文章

  1. JAVA面向对象编程课程设计——web版斗地主

    一.团队课程设计博客链接 JAVA面向对象编程课程设计--网络版单机斗地主 二.个人负责模块或任务说明 实体类的设计 斗地主规则的实现 人机自动出牌的算法 实现数据库的DAO模式 三.自己的代码提交记 ...

  2. Java面向对象编程基础

    一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...

  3. java 面向对象编程。。。。

    经过一周的学习(java),总结了许多,对java的理解,java的类型,运用,安装,基础语法,变量,常量,表达式,语句 java从C语言中继承了大量语言特性.java面向对象编程的基本特征,包括继承 ...

  4. 《Java面向对象编程》

    <Java面向对象编程> 第11章 对象的生命周期 11.1  创建对象的方式 用new语句创建对象 运用反射手段,调用java.lang.Class 或者 java.lang.Const ...

  5. JAVA面向对象编程课程设计——网络版单机斗地主

    一.团队介绍 成员姓名 任务分配 成员课程设计博客链接 兰泽祥(组长) 数据库,斗地主规则的实现,人机自动出牌的算法,实体类的设计 JAVA面向对象编程课程设计--web版斗地主 吴修恩 JSP界面的 ...

  6. Java学习笔记二十九:一个Java面向对象的小练习

    一个Java面向对象的小练习 一:项目需求与解决思路: 学习了这么长时间的面向对象,我们只是对面向对象有了一个简单的认识,我们现在来做一个小练习,这个例子可以使大家更好的掌握面向对象的特性: 1.人类 ...

  7. java面向对象编程知识点总结

    一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类 ...

  8. Java面向对象编程(一)

    由于常常将Java和C++面向对象编程的原则搞乱,所以这次把相关要点分别总结一下,本文主要总结Java面向对象编程. 面向对象编程的三大特性是:继承性(inheritance), 多态性(polymo ...

  9. JAVA学习(五):Java面向对象编程基础

    Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目 ...

随机推荐

  1. Git使用方法(精心整理,绝对够用)转载

    Git使用方法(精心整理,绝对够用)   一.git客户端(本地仓库)的一些操作 1.设置账户(需要和github账户设置一致) git config --global user.name xxx g ...

  2. Clion pycharm激活码(可使用到2019年2月)

    D87IQPUU3Q-eyJsaWNlbnNlSWQiOiJEODdJUVBVVTNRIiwibGljZW5zZWVOYW1lIjoiTnNzIEltIiwiYXNzaWduZWVOYW1lIjoiI ...

  3. jquery print属性设置

    一,需求背景 项目中遇到打印功能,想实现完美的打印功能,对元素进行操作等,可以使用jquery print 插件. 二,依赖文件  git地址请戳这里 1,jquery 2,jquery.print- ...

  4. 简单的Poc Exp编写(上)

    简单的POC EXP 编写 (上)   作者BY Greekn   今天主要讲的 是关于web 方面的 poc 编写 关于web 安全 个人理解的话 一个就是攻击  另一个就是漏洞挖掘了 防御的话 看 ...

  5. Linux 进程一直占用单核CPU分析

    pidstat 1信息

  6. vue 所有的指令

    1. v-text v-text主要用来更新textContent,可以等同于JS的text属性. <span v-text="msg"></span> 这 ...

  7. HoloLens开发手记-全息Hologram

    HoloLens使我们可以通过周边世界的光线和声音来创建全息场景和物体,使得它们像真实物体那样.全息场景能够响应你的凝视.手势和语音指令,同时还会和你周边世界的表面交互.借助全息场景,你可以在周边世界 ...

  8. 详谈再论JAVA获取本机IP地址

    首先,你如果搜索“JAVA获取本机IP地址”,基本上搜到的资料全是无用的.比如这篇:http://www.cnblogs.com/zrui-xyu/p/5039551.html实际上的代码在复杂环境下 ...

  9. apache和tomcat的区别和联系

    两者既有联系又有区别,是两个软件,可独立使用,也可整合使用.Apache是web服务器(静态解析,如HTML),本身只支持html,Web服务器专门处理HTTP请求(request),可以通过插件支持 ...

  10. Python常用模块—— Colorama模块

    简介 Python的Colorama模块,可以跨多终端,显示字体不同的颜色和背景,只需要导入colorama模块即可,不用再每次都像linux一样指定颜色. 1. 安装colorama模块 pip i ...