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

练习:功能跳水比赛,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. Paper | 亚像素运动补偿 + 视频超分辨

    目录 1. ABSTRACT 2. INTRODUCTION 3. RELATED WORKS 4. SUB-PIXEL MOTION COMPENSATION (SPMC) 5. OUR METHO ...

  2. django自定义user认证系统

    第一种,彻底推翻django的user认证系统,重新定义我们想要的字段 from django.contrib.auth.models import AbstractBaseUser,Permissi ...

  3. 自动化测试之数据库操作pymysql

    1.下载并导入pymysql 2.配置参数连接mysql db = pymysql.connect(**config) config = { 'host': str(host), 主机地址 'user ...

  4. 使用diskpart命令格式化U盘

    在安装各种linux系统时,经常要使用SD卡,这里就出了个问题,就是SD卡被linux格式化之后无法在widdows下使用. 并且windows下的格式化按键对它毫无作用.笔者在摸索的过程中,找到了格 ...

  5. Python内置类型(3)——比较

    python有8种比较运算符:<.<=.>.>=.==.!=.is.is not,它们具有相同的优先级.它们具体的含义如下: 运算符 含义 < 小于 <= 小于或等 ...

  6. 如何将页面上的数据导入excel中

    网上关于页面数据导入excel的文章很多,但是大部分都是关于 ActiveXObject 对象,可是ActiveXObject 对象是只支持IE的,可我连IE11也测试了,还是无法识别,又查到消息,好 ...

  7. C# 算法之链表、双向链表以及正向反向遍历实现

    1.简介 链表是一种非常基础的数据结构之一,我们在日常开发种都会接触到或者是接触到相同类型的链表数据结构.所以本文会使用C#算法来实现一个简单的链表数据结构,并实现其中几个简单的api以供使用. 2. ...

  8. Hive ROW_NUMBER,RANK(),DENSE_RANK()

    准备数据 浙江,杭州,300 浙江,宁波,150 浙江,温州,200 浙江,嘉兴,100 江苏,南京,270 江苏,苏州,299 江苏,某市,200 江苏,某某市,100   创建表 CREATE t ...

  9. Python学习的路上,Anaconda送你一双遮天神翼

    一.背景 ​ 最近在学习python,发现在本地搭建python环境的时候,要是想要同时搭建不同python版本的环境,就比较麻烦,很容易就出现冲突了,很是头疼.然后光明就出现这山重水复疑无路的时候, ...

  10. 《Kubernetes权威指南》——运维技巧

    1 Node的隔离和恢复 方法1: 创建新的Node配置文件指定spec.unschedulable: true 通过kubectl replace完成对Node的状态修改 kubectl repla ...