說個簡單就能實現(xiàn)的結(jié)果吧…
使用數(shù)組等對象是可以達到類似c#中out類型的效果的
BUT
并非只要傳遞的數(shù)據(jù)是引用類型就是引用傳遞
補點概念
值傳遞
是指在調(diào)用函數(shù)時,將實際參數(shù)復制一份傳遞給函數(shù)慎皱,這樣在函數(shù)中修改參數(shù)時老虫,不會影響到實際參數(shù)。
引用傳遞
是指在調(diào)用函數(shù)時茫多,將實際參數(shù)的地址傳遞給函數(shù)祈匙,這樣在函數(shù)中對參數(shù)的修改,將影響到實際參數(shù)天揖。
注意夺欲!
一般來講,只有修改的值是與傳進來的參數(shù)的地址相同的參數(shù)的值才是引用傳遞今膊,而只有采用引用傳遞的類型的數(shù)據(jù)才能達到和c#中out修飾類型同樣的效果些阅。
舉個例子應該就明白了
示例
代碼
public static void main(String[] args) {
String[] strArr={"張三"};
System.out.println(strArr[0]);
changeValue(strArr);
System.out.println(strArr[0]);
System.out.println("=========================");
System.out.println(strArr[0]);
changeValue2(strArr);
System.out.println(strArr[0]);
}
private static void changeValue2(String[] strArr) {
String[] strArr2={"李四"};
strArr[0]=strArr2[0];
}
private static void changeValue(String[] strArr) {
String[] strArr2={"李四"};
strArr=strArr2;
}
輸出結(jié)果
張三
張三
=========================
張三
李四
image.png