黑马程序员技术交流社区
标题:
输出数组中最大的数值,两个不同类型的数组的重载问题
[打印本页]
作者:
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