栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中方法的认识(2)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中方法的认识(2)

首先引人一个问题,使用方法的优点有哪些?
我们先看一个不使用方法进行封装过程的例子,在这个例子中,我们会输入三个人的数据,然后分别找出当中年龄、体重、身高的。

 

import java.util.Scanner;

public class MaxHwa {
    public static void main(String[] args) {
        Scanner stdIn =new Scanner(System.in);
        // 定义三个数组,分别用来储存三个人的基本信息
        int[] height=new int[3];
        int[] weight= new int[3];
        int[] age=new int[3];
        // 通过for循环为height数组里的每个元素手动赋值
        for(int i=0;i<3;i++){
            System.out.print("请输入"+(i+1)+"个人的身高:");
            height[i]=stdIn.nextInt();
            System.out.print("请输入"+(i+1)+"个人的体重:");
            weight[i]=stdIn.nextInt();
            System.out.print("请输入"+(i+1)+"个人的年龄");
            age[i]=stdIn.nextInt();
        }
        // 定义三个变量分别用来储存身高、体重、年龄的最大值,初始值为数组的第一个元素
        int maxHeight = height[0];
        int maxWeight = weight[0];
        int maxAge = age[0];
        // 与数组中的其它元素进行比较,若其它元素大于初始值,则将初始值替换为其它元素的值
        if(height[1] > maxHeight) {
            maxHeight = height[1];
        }
        if(height[2] > maxHeight) {
            maxHeight = height[2];
        }
        if(weight[1] > maxWeight) {
            maxWeight = weight[1];
        }
        if(weight[2] > maxWeight) {
            maxWeight = weight[2];
        }
        if(age[1] > maxAge) {
            maxAge = age[1];
        }
        if(age[2] > maxAge) {
            maxAge = age[2];
        }
        System.out.println(maxAge);
        System.out.println(maxHeight);
        System.out.println(maxWeight);


    }
}

 可以看出以上存在着很多几乎一样的代码,”代码复制“是程序质量不良的一种表现,为什么这样说呢?首先这会造成成代码的冗余(看起来怎么这么长呢),其次也不方便维护,比如当我们需求发生更改的时候,我们从求数据的最大值,改为求数据的最小值,我们就需要一个一个的去修改,几个的话还好,几十上百个呢?势必会带来繁重的工作量。

我们可以把以上相同的操作进行共性抽取,封装成方法,然而这些几乎一模一样的方法里面具有不同的东西(就是变量),我们可以将变量作为方法的参数,让我们看下改进之后的代码。

import java.util.Scanner;

public class MaxHwa {

    public static int max(int a, int b, int c) {
        int max = a;
        if (b > max) max = b;
        if (c > max) max = c;
        return max;
    }
    public static void main(String[] args) {

        Scanner stdIn = new Scanner(System.in);
        // 定义三个数组,分别用来储存三个人的基本信息
        int[] height = new int[3];
        int[] weight = new int[3];
        int[] age = new int[3];
        // 通过for循环为height数组里的每个元素手动赋值
        for (int i = 0; i < 3; i++) {
            System.out.print("请输入第" + (i + 1) + "个人的身高:");
            height[i] = stdIn.nextInt();
            System.out.print("请输入第" + (i + 1) + "个人的体重:");
            weight[i] = stdIn.nextInt();
            System.out.print("请输入第" + (i + 1) + "个人的年龄");
            age[i] = stdIn.nextInt();
        }

        System.out.println(max(age[0], age[1], age[2]));
        System.out.println(max(height[0], height[1], height[2]));
        System.out.println(max(weight[0], weight[1], weight[2]));


    }



}

可以看出代码变的更加简洁,如果我们需要更改需求,比如之前是求的最大值,改为求最小值,我们只需要在定义的max方法中进行修改,从而实现一处该处处该的效果,更加方便进行维护。

总结一下就是:1.方便代码重复调用

                          2.减少代码冗余性,使代码更加简洁。

                          3.更加方便地实现代码地维护。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/820313.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号