Java 面向对象编程小练习(曾经)

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

练习:功能跳水比赛,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 面向对象编程小练习(曾经)

相关文章:

你感兴趣的文章:

标签云: