// 파라미터 전달 방법
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;
}
}