黑马程序员技术交流社区

标题: 输出数组中最大的数值,两个不同类型的数组的重载问题 [打印本页]

作者: dark_horse_xu    时间: 2014-9-13 20:54
标题: 输出数组中最大的数值,两个不同类型的数组的重载问题
本帖最后由 dark_horse_xu 于 2014-10-2 00:27 编辑

求两个不同类型的数组的最大值。利用了函数的重载,怎么会有错误呢?
class  ArrayTest
{
        public static int getMax(int[] arr)
        {
                int max=arr[0];
                for (int x=1;x<arr.length ;x++ )
                {
                        if(arr[x]>arr[0])
                                max=arr[x];                        
                }
                return max;
        }
        public static void main(String[] args)
        {
                int[] arr={5,1,6,4,2,8,9};
                double[] ar={3.4,5.4,6.3,1.4};
                int max=getMax(arr);
                double max1=getMax(ar);
                System.out.println("max="+max);
                System.out.println("max1="+max1);
        }
        
        public static double getMax(double[] arr)
        {
                int max=arr[0];//数组类型改成double就对了,为什么啊?不是函数的重载,内容不变的吗?
/*错误提示:ArrayTest.java:43: 错误: 不兼容的类型: 从double转换到int可能会有损失
                int max=arr[0];
                           ^
ArrayTest.java:47: 错误: 不兼容的类型: 从double转换到int可能会有损失
                                max=arr[x];*/
                for (int x=1;x<arr.length ;x++ )
                {
                        if(arr[x]>arr[0])
                                max=arr[x];                        
                }
                return max;
        }
}PS:这个函数重载,还能继续简化吗?







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