publicclassMain{publicstaticvoidmain(String[] args){int x =3;
Main.swap(x);
System.out.println(x);}staticvoidswap(int x){
x =10;}}
函數中的值不影響函數外的值
3. 引用傳參
publicclassMain{publicstaticvoidmain(String[] args){int[] x =newint[10];
x[0]=10;
Main.swap(x);
System.out.println(x[0]);}staticvoidswap(int[] x){
x[0]=12;}}
結果爲12
3.1. 修改引用的部分
package com.wuqi.p1;import com.wuqi.p2.User;publicclassPassTest2{publicstaticvoidmain(String[] args){
User user =newUser();
user.setName("wutianqi");//傳遞對象,因爲是將指向User的引用user傳遞給了param,//在函數中param.setName會反應到真實的對象中去。pass(user);
System.out.println("my name is "+ user.getName());}privatestaticvoidpass(User param){
param.setName("wuqi");
System.out.println("my name is "+ param.getName());}}
3.2. 修改引用
package com.wuqi.p1;publicclassPassTest3{publicstaticvoidmain(String[] args){
String name ="wutianqi";//這裏傳遞字符串參數,按照我們以前的觀點這裏應該傳遞的是將指向字符串的name引用//傳遞給param,那麼在pass函數中修改參數的值會直接影響到name引用指向的字符串//的值,那麼輸出的結果依此應該是 my name is wuqi my name is wuqipass(name);
System.out.println("my name is "+ name);}privatestaticvoidpass(String param){
param ="wuqi";
System.out.println("my name is "+ param);}}