一、体会可变个数的形参
1.格式:对于方法的形参 数据类型 ...形参名
2.可变形参的方法与同名的方法构成重载
3.可变个数的形参在调用时个数从0开始到无穷多个都可以。
4.使用可变个数的形参与方法的形参使用使用数组是一致的。
5.若一个方法中有可变个数的形参,那么一定要声明在方法形参的最后。
package day04; public class TestArgs { public static void main(String[] args) { TestArgs c=new TestArgs(); c.Print("Hello"); c.Print("Hello"+"world"); c.Print(5, "你好方法重载!"); } public void Print(String ... arr) { for(int i=0;i<arr.length;i++) { System.out.println(arr[i]); } } public void Print(int j,String ...arrr) { System.out.println(j); for(int i=0;i<arrr.length;i++) { System.out.println(arrr[i]); } } }
二、方法的参数传递
java中的参数传递机制:值传递机制
* 1)形参是基本数据类型的
package day04; /* * 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); //交换变量的值 int temp=i; i=j; j=temp; System.out.println("i:"+i+" j:"+j); tt.swap(i, j);//i:5 j:10 没有交换 //将i的值传递给了M,将j的值传递给了N.操作仅仅是在tt.swap()内,而并不影响i和j. System.out.println("i:"+i+" j:"+j); } public void swap(int M,int N) { int temp=M; M=N; N=temp; System.out.println("M:"+M+" N:"+N); } }
* 2)形参是引用数据类型的:将实参的引用类型变量的值(对应的堆空间的实体对象的首地址)传递给形参的引用变量。
package day04; /* * 对于引用数据类型的值传递 */ public class TestArgsTransfer1 { public static void main(String[] args) { TestArgsTransfer1 dd=new TestArgsTransfer1(); DataSwap gg=new DataSwap(); System.out.println("gg.i:"+gg.i+" gg.j:"+gg.j ); dd.swap(gg); System.out.println("gg.i:"+gg.i+" gg.j:"+gg.j ); } public void swap(DataSwap tt) { int temp=tt.i; tt.i=tt.j; tt.j=temp; } } class DataSwap { int i=10; int j=5; }