1、相似逻辑,但是形参不同的函数,可以使用相同的名字,方便理解和记忆,解决起名困难症。
【示例代码】
public static void printIntArr(int[] arr) {
System.out.println(Arrays.toString(arr));
}
public static void printIntArr(double[] arr) {
System.out.println(Arrays.toString(arr));
}
比如上述,我们都想实现打印数组内容,但是一个是int数组类型的形参,一个是double数组类型的形参。就可以根据形参类型重载
【运行结果】
2、间接实现函数Default Value的效果
【示例代码】
package com.hhnail.util;
import java.util.Arrays;
import java.util.Random;
public class HArrayUtil {
private static final Random random = new Random();
/**
* getOrderedIntArr
* 获取有序 int 数组
*/
public static int[] getOrderedIntArr() {
return getOrderedIntArr(10, false);
}
public static int[] getOrderedIntArr(int length) {
return getOrderedIntArr(length, false);
}
public static int[] getOrderedIntArr(int length, boolean lower) {
int[] orderedArr = new int[length];
for (int i = 0; i < length; i++) {
int maxGap = 1000;
int randomInt = random.nextInt(maxGap);
if (i - 1 >= 0) {
orderedArr[i] = orderedArr[i - 1] + (lower ? (-randomInt) : randomInt);
} else {
orderedArr[i] = randomInt;
}
}
return orderedArr;
}
}
上述函数实现了返回随机的int数组;如果不传lower,默认升序;如果不传length,默认返回长度为10的数组。当然也可以进行各种各样的扩展。
以此实现了函数的“默认参数”的效果。
【运行结果】