Java函数重载及参数传递方法详解
Java函数重载是指在同一个类中,有多个同名的函数,但是它们的参数个数或者参数类型不同。Java函数重载可以提高代码的复用性和可读性,例如在一个类中可以定义多个构造函数,用来初始化不同的对象。
Java函数重载的规则:
1.函数名称必须相同。
2.参数列表必须不同,可以是参数个数不同,参数类型不同或者参数顺序不同。
3.函数的返回值类型可以相同也可以不同。
4.函数重载与函数的修饰符和被调用时参数的引用有关系,与返回值类型无关。
5.函数重载与访问权限无关,只与函数的名称和参数列表有关。
例如,在一个类中定义了两个同名的函数,但是它们的参数个数和类型不同:
public class Calculate{
public int add(int a, int b){
return a+b;
}
public int add(int a, int b, int c){
return a+b+c;
}
}
在调用这两个函数时,就需要根据传递的参数个数和类型选择正确的函数:
Calculate c = new Calculate(); int result1 = c.add(1,2); //调用add(int a, int b)方法,结果为3 int result2 = c.add(1,2,3); //调用add(int a, int b, int c)方法,结果为6
Java参数传递方法:
Java参数传递有两种方式:值传递和引用传递。在值传递中,实参的值会被复制一份传递给形参,在函数内部对形参进行修改不会影响到实参。而在引用传递中,实参的地址会被传递到函数内部,对形参进行修改会改变实参的值。
1.值传递
值传递是指将实际参数的值复制一份传递给函数的形式参数,函数内部对形参的修改不会影响到实参的值。例如:
public class Value{
public void swap(int x, int y){
int temp = x;
x = y;
y = temp;
}
}
在调用swap方法时,传入的参数值会被复制一份,分别用x和y代替。在函数内部,x和y的值会被交换,但是这对原来的实参没有影响。例如:
Value v = new Value();
int a = 1, b = 2;
v.swap(a, b);
System.out.println("a=" + a + ", b=" + b);
输出结果为:
a=1, b=2
可以看到,调用swap方法后,a和b的值并没有交换。
2.引用传递
引用传递是指将对象的地址作为参数传递给函数,函数内部对形参的修改会影响到实参的值。例如:
public class Reference{
public void swap(int[] arr){
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
}
}
在调用swap方法时,传入的参数是一个int数组的引用,即实参和形参都指向同一个数组。在函数内部对形参的修改会影响到实参的值。例如:
Reference r = new Reference();
int[] arr = {1, 2};
r.swap(arr);
System.out.println("arr[0]=" + arr[0] + ", arr[1]=" + arr[1]);
输出结果为:
arr[0]=2, arr[1]=1
可以看到,调用swap方法后,arr数组的第一个元素和第二个元素的值发生了交换。
综上所述,Java函数重载和参数传递是Java编程中非常重要的知识点,掌握了这些知识可以使代码更加灵活高效。
