자바 매개 변수 전달 (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


요약: 배열 이 매개 변수 로 전 달 될 때 방법 에서 배열 요 소 를 바 꾸 었 다. 그러면 실제 배열 은 정말 바 뀌 었 다. 배열 의 요소 가 인용 유형 이 라 고 해도 마찬가지다.전달 하 는 것 이 하나의 대상 이 인용 할 때 우리 의 지난 절 에 따라 분석 할 수 있 고 대상 내 필드 도 자 연 스 럽 게 바 뀌 었 다. 왜냐하면 직접 조작 하 는 것 은 쌓 여 있 는 통 일 된 내용 이기 때문이다.

좋은 웹페이지 즐겨찾기