1 /*
2 * 方法的形参的传递机制:值传递
3 *
4 * 1.形参:方法定义时,声明的小括号内的参数
5 * 实参:方法调用时,实际传递给形参的数据
6 *
7 * 2.值传递机制:
8 * 如果参数是基本数据类型,此时实参赋值给形参的是实参真是存储的数据值。
9 */
10
11 //针对基本数据类型
12
13 public class ValueTransferTest1 {
14
15 public static void main(String[] args) {
16
17 int m = 10;
18 int n = 20;
19
20 System.out.println("m = " + m + ", n = " + n);
21 //交换两个变量的值的操作
22 // int temp = m;
23 // m = n;
24 // n = temp;
25
26 ValueTransferTest1 test = new ValueTransferTest1();
27 test.swap(m, n);
28
29 System.out.println("m = " + m + ", n = " + n);
30
31 }
32
33 public void swap(int m,int n){
34 int temp = m;
35 m = n;
36 n = temp;
37 }
38 }
1 //针对引用数据类型
2
3 /*
4 * 如果参数是引用数据类型,此时实参赋值给形参的是实参存储数据的地址值。
5 */
6
7 public class ValueTransferTest2 {
8
9 public static void main(String[] args) {
10 Data data = new Data();
11
12 data.m = 10;
13 data.n = 20;
14
15 System.out.println("m = " + data.m + ", n = " + data.n);
16
17 //交换m和n的值
18 // int temp = data.m;
19 // data.m = data.n;
20 // data.n = temp;
21
22 ValueTransferTest2 test = new ValueTransferTest2();
23 test.swap(data);
24
25 System.out.println("m = " + data.m + ", n = " + data.n);
26
27 }
28
29 public void swap(Data data){
30 int temp = data.m;
31 data.m = data.n;
32 data.n = temp;
33 }
34 }
35
36
37 class Data{
38
39 int m;
40 int n;
41 }
1 /*
2 * 关于变量的赋值
3 *
4 * 如果变量是基本数据类型,此时赋值的是变量所保存的数据值。
5 * 如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。
6 *
7 */
8 public class ValueTransferTest {
9
10 public static void main(String[] args) {
11
12 System.out.println("**********基本数据类型:***********");
13 int m = 10;
14 int n = m;
15
16 System.out.println("m = " + m + ", n = " + n);
17
18 n = 20;
19
20 System.out.println("m = " + m + ", n = " + n);
21
22 System.out.println("***********引用数据类型:********");
23
24 Order o1 = new Order();
25 o1.orderId = 1001;
26
27 Order o2 = o1; //赋值后,o1和o2的地址值相同,都指向了堆空间中同一个对象实体
28 System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " + o2.orderId);
29
30 o2.orderId = 1002;
31 System.out.println("o1.orderId = " + o1.orderId + ",o2.orderId = " + o2.orderId);
32
33 }
34 }
35
36 class Order{
37 int orderId;
38 }