자바 매개 변수 전달 (2)
사실 배열 은 하나의 인용 유형 으로 전달 되 는 것 이 므 로 아래 의 예 를 가볍게 보 세 요!
/**
*
*/
package arguments.transport;
/**
* test the parameter transfer via array or object reference
*
* @author Bruce
* @date Sep 26, 2011
* @version
*/
public class ArrayParameterTransfer {
public String nn = "main";
public static void main(String[] args) {
String[] s1 = new String[] { "Kitty", "Tom" };
char[] ch = new char[] { 'a', 'b', 'c' };
ArrayParameterTransfer a = new ArrayParameterTransfer();
System.out.println("Before change:" + a.nn);
changObj(a);
System.out.println("After change:" + a.nn);
change(s1, ch);
System.out.println(s1[0]);
System.out.println(ch);
}
/**
* change the field of a instance of class
*
* @param a
*/
private static void changObj(ArrayParameterTransfer a) {
a.nn = "sub";
}
/**
* chang the element value of a array
*
* @param s1
* @param ch
*/
private static void change(String[] s1, char[] ch) {
s1[0] = "Lily";
ch[0] = 'z';
}
}
打印:
Before change:main
After change:sub
Lily
zbc
요약: 배열 이 매개 변수 로 전 달 될 때 방법 에서 배열 요 소 를 바 꾸 었 다. 그러면 실제 배열 은 정말 바 뀌 었 다. 배열 의 요소 가 인용 유형 이 라 고 해도 마찬가지다.전달 하 는 것 이 하나의 대상 이 인용 할 때 우리 의 지난 절 에 따라 분석 할 수 있 고 대상 내 필드 도 자 연 스 럽 게 바 뀌 었 다. 왜냐하면 직접 조작 하 는 것 은 쌓 여 있 는 통 일 된 내용 이기 때문이다.