Java中方法的值传递机制

77 阅读1分钟

方法的值传递机制

  1. (复习)对于方法内声明的局部变量来说:如果出现赋值操作

如果是基本数据类型的变量,则将此变量保存的数据值传递出去。
如果是引用数据类型的变量,则将此变量保存的地址值传递出去。

  1. 方法的参数的传递机制:值传递机制

2.1 概念(复习)
形参:在定义方法时,方法名后面括号()中声明的变量称为形式参数,简称形参。
实参:在调用方法时,方法名后面括号()中的使用的值/变量/表达式称为实际参数,简称实参。

2.2 规则:实参给形参赋值的过程

如果形参是基本数据类型的变量,则将实参保存的数据值赋给形参。
如果形参是引用数据类型的变量,则将实参保存的地址值赋给形参。

  1. 面试题:Java中的参数传递机制是什么?值传递。(不是引用传递)

举例一(基本数据类型的值传递)

package com.atguigu05.method_more._03valuetransfer;  

public class ValueTransferTest2 {  
    public static void main(String[] args) {  
        ValueTransferTest2 test = new ValueTransferTest2();  
        int m = 10;  
        int n = 20;  

        System.out.println("m = " + m + ", n = " + n);  

        //交换两个变量的值  
        //操作1:  
        // int temp = m;  
        // m = n;  
        // n = temp;  

        //操作2:  
        //调用方法  
        test.swap(m,n);  
        System.out.println("m = " + m + ", n = " + n); //m=10 n=20
        }  

        public void swap(int m ,int n){  
        int temp = m;  
        m = n;  
        n = temp;  
    }  
}

参数传递机制举例1.png

举例二((引用数据类型的值传递))

package com.atguigu05.method_more._03valuetransfer;  

public class ValueTransferTest3 {  

    public static void main(String[] args) {  

        ValueTransferTest3 test = new ValueTransferTest3();  

        Data data = new Data();  
        data.m = 10;  
        data.n = 20;  

        System.out.println("m = " + data.m + ", n = " + data.n);  

        //操作1:  
        // int temp = data.m ;  
        // data.m = data.n;  
        // data.n = temp;  

        //操作2:  
        test.swap(data);  
        System.out.println("m = " + data.m + ", n = " + data.n); //m=20 n=10

        }  

        public void swap(Data data){  
        int temp = data.m ;  
        data.m = data.n;  
        data.n = temp;  
    }  
}  
  
class Data{  
    int m;  
    int n;  
}

参数传递机制举例2.png