A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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:这个函数重载,还能继续简化吗?


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马