成员方法的传参机制★
1、基本数据类型的传参机制:
理解这个就必须要先理解在方法中:什么是实参,什么是形参!
举个栗子:
public class MethodDetail01 {
public static void main(String[] args) {
int a =20;//这个就是实参!!!!
int b=40;//这个也是实参!!!!
Swap swap = new Swap();
swap.swap(a,b);//括号里面的也是形参!
System.out.println("main方法中的"+"a="+a+", "+"b="+" "+b);
}
}
class Swap{
public void swap(int a ,int b){//括号里面的就是形参了
int tmp =a;这个也是型参!!!!
a=b;
b=tmp;
System.out.println("Swap方法中的"+"a="+a+", "+"b="+" "+b);
}
}
运行结果为:
发现main方法中的实参并没有发生改变!
结论:
基本数据类型,传递的是值(值传递),形参的改变不影响实参!
2、 引用数据类型的传参机制
说明:
通过数组来说明引用的传参机制;数组本身也是引用类型!
public class MethodDetail02 {
public static void main(String[] args) {
A a = new A();
int [] arr ={1,2,3};
a.test(arr);
System.out.println("main方法的 arr数组:");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]+"\t");
}
System.out.println();
}
}
class A{
public void test(int [] arr){
arr[0] =100;
System.out.println("test的arr数组:");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]+"\t");
}
}
}
运行结果:
原理图与上一个帖子一致!
结论:
1、引用类型传递的是地址(传递的也是值,但是值是地址)可以通过形参来影响实参!
2、传对象也是一样。因为对象也是引用类型。