// 파라미터 전달 방법
public class Ex04_method {
	public static void main(String[] args) {
		Test4 tt = new Test4();

		int n = 5;
		
		// call by value
		tt.sub1(n);
		System.out.println(n); // 5

		// call by reference
		tt.sub2(tt); // tt객체의 주소값을 보냄
		System.out.println(tt.x); // 15
		
		int []ss = {10,20,30};
		tt.sub3(ss);
		System.out.println(ss[1]);
		// 실인수와 가인수의 자료형은 같아야함.
		
	}
}
class Test4 {
	int x=10;
	
	// call by value(기본) : 실매개 변수와 형식 매개변수가 기억공간 따로 확보
	public void sub1(int a) {
		a = a+10;
	}
	
	// call by reference : 레퍼런스변수(객체)
	public void sub2(Test4 t) { // tt의 주소값을 t가 받음. 자료형이 Test4임.
		// 보내는 것이 Test4의 레퍼런스변수 이므로 Test4의 레퍼런스변수로 받아야함
		// 다시만드는 것이 아님. 메모리할당이 아님.
		 t.x +=5;
	}	
	
	// call by reference : 레퍼런스변수(배열)
	public void sub3(int[] nn) {
		nn[1] += 100;
	
	}
		
}

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0714_Ex06_객체는 레퍼런스 변수이다.  (0) 2021.07.14
0714_Ex05_method  (0) 2021.07.14
0714_Ex03_method  (0) 2021.07.14
0714_Ex02_method  (0) 2021.07.14
0714_Ex01_field  (0) 2021.07.14

+ Recent posts