什么是方法重载?
在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者类型不同。
为什么要使用方法重载?
想要实现同样的功能,但是传入方法的数据类型却跟原来不同。
方法的形参传递机制:值传递
形参:方法声明时的参数
实参:方法调用时实际传给形参的参数
值传递机制:
1、如果参数是基本的数据类型,此时实参赋给形参的是实参真实存储的数据值,复制了一份一样的数据传给方法中的形参,形参改变不影响实参
2、如果变量是引用数据类型,此时赋值的是变量所保存的地址值
//参数是基本数据类型
public class test15 {
public static void main(String[] args) {
int m = 10;
int n = 20;
test15 tt = new test15();
//具体实例利用方法实现打印输出m和n交换后的结果
System.out.println("交换前:m= "+m+", n= "+n);
System.out.println();
tt.swap(m,n);
System.out.println("调用交换方法后的实参值:m= "+m+", n= "+n);
}
//参数是基本数据类型
public void swap(int m,int n) {
int temp;
temp = m;
m = n;
n = temp;
System.out.println("参数是基本数据类型-调用交换方法后的形参值:m= "+m+", n= "+n);
System.out.println();
}
}
- 运行结果
内存解释图:
//参数是引用数据类型
public class test16 {
public static void main(String[] args) {
Data data = new Data();
data.m = 10;
data.n = 20;
System.out.println("交换前:m= "+data.m+", n= "+data.n);
System.out.println();
test16 tt = new test16();
tt.swap(data);
System.out.println("调用交换方法后的实参值:m= "+data.m+", n= "+data.n);
}
// 参数是引用数据类型
public void swap(Data data) {
int temp;
temp = data.m;
data.m = data.n;
data.n = temp;
System.out.println("参数是引用数据类型-调用交换方法后的形参值:m= " + data.m + ", n= " + data.n);
System.out.println();
}
}
class Data{
int m;
int n;
}
- 运行结果
内存解释图: