有⭐代表重点或者难点
1. 形参:方法声明时,方法小括号内的参数
实参:调用方法时,实际传入的参数的值
2.规则:java中的参数传递机制:值传递机制
1) 形参是基本数据类型的:将实参的值传递给形参的基本数据类型变量
2) 形参是引用数据类型的:将实参的引用类型变量的值(对应的堆空间的对象实体首地址值)传递给形参的引用类型变量。
形参是基本数据类型的代码:
public class TestArgsTransfer { public static void main(String[] args) { TestArgsTransfer tt = new TestArgsTransfer(); int i = 10; int j = 5; System.out.println("i:" + i + " j:" + j); //10 5 //不定义方法 在mian中交换变量i与j的值 // int temp = i; // i = j; // j = temp; tt.swap(i, j); //将i的值传递给m,j的值传递给n System.out.println("i:" + i + " j:" + j); //10 5 } //定义一个方,交换两个变量的值 public void swap(int i, int j) { int temp = i; i = j; j = temp; System.out.println("i:" + i + " j:" + j); //5 10 } }
结果:
i:10 j:5
i:10 j:5
形参是基本数据类型的内存图
不定义方法在mian中交换值在内存中的体现:
定义方法在swap中交换值在内存中的体现:
形参是引用数据类型的代码:
public class TestArgsTransfer1 { public static void main(String[] args) { TestArgsTransfer1 tt = new TestArgsTransfer1(); DataSwap ds = new DataSwap(); System.out.println("i:" + ds.i + " j:" + ds.j); tt.swap(ds); System.out.println(ds); System.out.println("i:" + ds.i + " j:" + ds.j); } //交换元素的值 public void swap(DataSwap d) { int temp = d.i; d.i = d.j; d.j = temp; System.out.println(d); } } class DataSwap { int i = 10; int j = 5; }
结果:
i:10 j:5
com.peter.java.DataSwap@1540e19d
com.peter.java.DataSwap@1540e19d
i:5 j:10
形参是引用数据类型的内存图: