方法的值传递机制
- (复习)对于方法内声明的局部变量来说:如果出现赋值操作
如果是基本数据类型的变量,则将此变量保存的数据值传递出去。
如果是引用数据类型的变量,则将此变量保存的地址值传递出去。
- 方法的参数的传递机制:值传递机制
2.1 概念(复习)
形参:在定义方法时,方法名后面括号()中声明的变量称为形式参数,简称形参。
实参:在调用方法时,方法名后面括号()中的使用的值/变量/表达式称为实际参数,简称实参。
2.2 规则:实参给形参赋值的过程
如果形参是基本数据类型的变量,则将实参保存的数据值赋给形参。
如果形参是引用数据类型的变量,则将实参保存的地址值赋给形参。
- 面试题: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;
}
}
举例二((引用数据类型的值传递))
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;
}