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