zoukankan      html  css  js  c++  java
  • 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;
        }
    }

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

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

  • 相关阅读:
    决策树
    性能测试–性能监视器
    MEAN栈开发
    Android Studio 入门(转)
    提取重复代码不应该只从代码角度,可以从业务角度看看(转)
    我眼中的领域驱动设计(转)
    网格最短路径算法(Dijkstra & Fast Marching)(转)
    Android GridView显示SD卡的图片
    Android GridView异步加载图片和加载大量图片时出现Out Of Memory问题
    Android 弹出框Dialog并缩放图片
  • 原文地址:https://www.cnblogs.com/1693977889zz/p/8367176.html
Copyright © 2011-2022 走看看