기본 자료형의 값을 인자로 전달하는 방식. 값을 복사하여 전달`
public class MethodArgMain01 {
//인자 전달 방식: 값 호출
//기본 자료형의 값을 인자로 전달하는 방식. 값을 복사하여 전달
//멤버 메서드
public int increase(int n) {
++n;
return n;
}
public static void main(String[] args) {
int var1 =100;
MethodArgMain01 me = new MethodArgMain01();
int var2= me.increase(var1);
System.out.println("var1 : "+var1+", var2 : "+var2);
}
메서드 호출시 전달하려는 인자를 참조(객체) 자료형을 사용할 경우를 의미. 주소(reference)를 복사하여 전달
//인자 전달 방식 : 침조 호출
//객체의 주소를 인자로 전달하는 방식. 주소(reference)를 복사하여 전달
public void increase(int[] n) {
for(int i=0; i<n.length; i++) {
n[i]++;
}
}
public static void main(String[] args) {
//배열의 선언 및 생성, 초기화
int[] ref1 = {100,200,300};
System.out.println("====데이터 변경 전====");
for(int i=0; i<ref1.length; i++) {
System.out.println("ref1["+i+"]:"+ref1[i]);
}
//객체 선언 및 생성
MethodArgMain02 me =new MethodArgMain02();
//배열의 주소를 복사해서 메서드의 인자에 전달
me.increase(ref1);
System.out.println("====데이터 변경 후====");
for(int i=0; i<ref1.length; i++) {
System.out.println("ref1["+i+"]:"+ref1[i]);
}
}
자료형이 일치할 때 전달하고자 하는 값의 개수를 다르게 지정할 수 있다.
전달되는 데이터는 내부적을 배열로 인식함
/*
* 가변인자 (Variable Arguments)
* JDK5.0이상부터 사용가능
* 자료형이 일치할 때 전달하고자 하는 값의 개수를 다르게 지정할 수 있다.
* 전달되는 데이터는 내부적을 배열로 인식함
*/
public void argTest(int ... n) {
for(int i=0; i<n.length; i++) {
System.out.println("n["+i+"]:"+n[i]);
}
System.out.println("--------------------------");
}
public static void main(String[] args) {
MethodArgMain03 me = new MethodArgMain03();
me.argTest(10);
me.argTest(10,20,30);
}