黑马程序员技术交流社区

标题: 如何以重载的形式获取double类型数组的最大值呢? [打印本页]

作者: @克俊    时间: 2013-10-19 12:46
标题: 如何以重载的形式获取double类型数组的最大值呢?
本帖最后由 @克俊 于 2013-10-19 22:42 编辑

如何以重载的形式获取double类型数组的最大值呢?

各位黑马师兄师姐:
求教一个问题。

我在自学到我毕老师的”Java基础视频教程第04天-03-数组(常见操作-获取最值)”视频的过程中,遇到另外一个问题,自己搞不定了。希望能获得师兄师姐的帮助~~~
谢谢~~~

我的问题是:在下面这个程序里面,要如何增写代码才能以重载的形式获取double类型数组的最大值呢?



我写的代码如下:


//需求3:同时获取最大值和最小值
class ArrayDemo3test3
{        
        public static void main(String[] args)
        {
                int[] arr ={5,1,6,4,2,8,9};

                int max = getMax_2(arr);
                System.out.println("max="+max);

                int min = getMin(arr);
                System.out.println("min="+min);
        }
        
        public static int getMax_2(int[] arr)//1定义一个获取最大值的功能
        {
                int max = 0;
                for(int x =1;x<arr.length;x++)
                {
                        if (arr[x]>arr[max])
                                max = x;//
                }
                return arr[max];
        }


        public static int getMin(int[] arr) //2定义一个获取最小值的功能
        {
                int min = 0;
                for(int x=1; x<arr.length; x++)
                {
                        if(arr[x]<arr[min])
                                min = x;
                }
                return arr[min];
        }
}

作者: ily521125    时间: 2013-10-19 13:42
添加代码如下
但上面必须要有double类型的数组
  1. public static double getMax(double[] arr)
  2. {
  3.                int max = 0;
  4.                for(int x=1;x<arr.length;x++)
  5.               {
  6.                            if (arr[x]>max)
  7.                            max = x;
  8.               }
  9.               return arr[max];
  10. }
复制代码

作者: 周志龙    时间: 2013-10-19 18:25

如果楼主已经解惑,请将帖子改为提问结束
作者: 李文帅    时间: 2013-10-19 19:02
我认为一楼的方法体是正确的,但楼主问的是重载,重载的话则方法名应该是一样的,所以我认为代码应该这样写:
public static double getMax_2(double[] arr)
        {
                 int max = 0;
                 for(int x =1;x<arr.length;x++)
                 {
                         if (arr[x]>arr[max])
                                 max = x;
                 }
                 return arr[max];
         }
还有楼主你写的getMax_2(int[] arr)方法中的
if (arr[x]>max)
应该改为
if (arr[x]>arr[max])
或许是楼主大意了吧
作者: 寻丶丶觅    时间: 2013-10-19 20:32
重载的关键在于参数列表,参数个数是否相同,参数类型是否相同,不相同则可以重载,与返回值类型无关,需要注意的是返回值类型不同,参数列表相同时,这两个方法是不允许存在同一个类中,这会导致传入参数时虚拟机不知道该调用哪一个,编译失败。我现在也在自学,希望能帮到你
作者: @克俊    时间: 2013-10-19 22:13
周志龙 发表于 2013-10-19 18:25
如果楼主已经解惑,请将帖子改为提问结束

好的~~

作者: @克俊    时间: 2013-10-19 22:27
周志龙 发表于 2013-10-19 18:25
如果楼主已经解惑,请将帖子改为提问结束

请问一下,要怎么改呢?
作者: 周志龙    时间: 2013-10-19 22:31
在编辑里选择为提问结束
作者: @克俊    时间: 2013-10-19 22:41
周志龙 发表于 2013-10-19 22:31
在编辑里选择为提问结束

好的,已经知道了,谢谢~~
作者: @克俊    时间: 2013-10-19 22:41
李文帅 发表于 2013-10-19 19:02
我认为一楼的方法体是正确的,但楼主问的是重载,重载的话则方法名应该是一样的,所以我认为代码应该这样写 ...

谢谢~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2