java方法的参数传递机制

方法的参数传递:

1、形参:方法声明时,方法小括号内的参数。

 2、实参:调用方法时,实际传入的参数的值。

 3、规则:java中的参数传递机制:值传递机制。

形参是基本数据类型的:将实参的值传递给形参的基本数据类型的变量。

形参是引用数据类型的:将实参的引用类型变量的值(对应的堆空间的对象实体的首地址值)传递给形参的引用类型变量。

       下面是参数传递的程序,搞清楚内存关系即可以明白java中方法的参数传递机制。(附内存结构)

class Value {

       int i = 15;

}

class Test {

public static void main(String argv[]) {

       Test t = new Test();

       t.first();

}

public void first() {

      int i = 5;

      Value v = new Value();

      v.i = 25;

      second(v, i);

      System.out.println(v.i);

}



public void second(Value v, int i) {

          i = 0;

         v.i = 20;

Value val = new Value();

         v = val;

        System.out.println(v.i + " " + i);

}

}

//交换俩变量的值

public class TestArgsTransfer {
    public static void main(String args[]){
        //使用swap()方法并不能交换两变量的数值。
        TestArgsTransfer sw= new TestArgsTransfer();
        
        int i=10;
        int j=5;
        System.out.println(" i="+i+" j="+j);//i=10 j=5
        sw.swap(i, j);//将i的值传给m,j的值传给n
        //int temp = i;
        //i = j;
        //j=temp;
        //验证i,j的值是否交换
        System.out.println(" i="+i+" j="+j);//这里的i还是等于10,j还是等于5。
        
    }
    //定义一个方法,交换两个变量的值。(只是改了m,n的值,没有影响i,j的值。)
    public void swap(int m,int n){
        int temp = m;
        m = n;
        n=temp;
        System.out.println(" m="+m+" n="+n);//m=5  n=10
    }

}

运行结果:

结果显示:成功交换两个变量的值。

//如下程序不能交换两个变量的值。

public class TestArgsTransfer {

    public static void main(String args[]){

        //使用swap()方法并不能交换两变量的数值。

        TestArgsTransfer sw= new TestArgsTransfer();

        

        int i=10;

        int j=5;

        System.out.println(" i="+i+" j="+j);//i=10 j=5

        sw.swap(i, j);//将i的值传给m,j的值传给n

        //int temp = i;

        //i = j;

        //j=temp;

        //验证i,j的值是否交换

        System.out.println(" i="+i+" j="+j);//这里的i还是等于10,j还是等于5。

        

    }

    //定义一个方法,交换两个变量的值。(只是改了m,n的值,没有影响i,j的值。)

    public void swap(int m,int n){

        int temp = m;

        m = n;

        n=temp;

        System.out.println(" m="+m+" n="+n);//m=5  n=10

    }

}

因为形参是基本数据类型。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值