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

练习:功能跳水比赛,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. Python PEP 8 编码规范中文版

    原文链接:http://legacy.python.org/dev/peps/pep-0008/ 转发链接:https://blog.csdn.net/ratsniper/article/detail ...

  2. AI for VS ,美团创新之处分析

    微软在2017中发布了VS Tools for AI,旨在提升用户对于深度学习的需求体验.AI组件可以让我们迅速构建和训练深度学习的Project,其功能主要有开发,调试和部署深度学习和人工智能的解决 ...

  3. (转)web前端知识精简

    Web前端技术由 html.css 和 javascript 三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言.而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学 ...

  4. MFS故障测试及维护总结

    一.测试环境说明: 10.2.2.230 mfsmaster     VIP:10.2.2.130 10.2.2.231 mfsbackup 10.2.2.253 mfsdata01 10.2.2.2 ...

  5. 背水一战 Windows 10 (83) - 用户和账号: 数据账号的添加和管理, OAuth 2.0 验证

    [源码下载] 背水一战 Windows 10 (83) - 用户和账号: 数据账号的添加和管理, OAuth 2.0 验证 作者:webabcd 介绍背水一战 Windows 10 之 用户和账号 数 ...

  6. Hessian学习(springboot环境)

    Hessian介绍: Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单.快捷.采用的是二进制RPC协议 ...

  7. 使用tinymce富文本

    1.tinymce入门参考 https://www.tiny.cloud/docs/general-configuration-guide/basic-setup/ 2.tinymce安装选项 htt ...

  8. elasticsearch学习之根据发布时间设置衰减函数

    衰减函数decay functionion 高斯衰减 GET _search { "_source": ["title","release_date& ...

  9. PHP、JS、Python,数据库 获取今天是星期几了?[开发篇]

    额,这个看起来是一个好简单的问题,但是真正到自己去一行行写的时候,又给忘了,妈蛋.有空就看看吧.今天是星期几?下面就来看看几种不同语言的实现吧! PHP语言 输出当前时间: echo date('Y- ...

  10. ElasticSearch权威指南学习(分布式文档存储)

    路由文档到分片 当你索引一个文档,它被存储在单独一个主分片上.Elasticsearch是如何知道文档属于哪个分片的呢?当你创建一个新文档,它是如何知道是应该存储在分片1还是分片2上的呢? 进程不能是 ...