Java方法的值传递机制

201 阅读1分钟

Java里方法的参数传递方式:值传递。
当参数类型不同时,传递的数据不同
如果参数是基本数据类型,此时参数传递给形参的是实参的数据值。
如果参数是引用数据类型,此时参数传递给形参的是实参的地址值。

  1. 参数是基本数据类型
main(){
    int m=10;
    int n=20;
    swap(m,n);
    System.out.println(m,n);
    }
swap(int m,int n){
    int temp=m;
    m=n;
    n=temp;
    }

1.png

上面这个方法交换了swap方法中的m,n。方法结束就会被销毁。
所以System.out.println(m,n)语句输出还是main()方法中的m,n。
2.参数是引用数据类型

main(){
    Data data=new Data();
    data.m=10;
    data.n=20;
    new 类.swap(data);
    System.out.println(m,n);
    }
swap(Data data){
    int temp=data.m;
    data.m=data.n;
    data.n=temp;
    }
class Data(){
    int m;
    int n;
}

2.png 对象没销毁时,实参指向经过swap方法后Data对象,这时候m,n交换成功。