인자(Argument)와 매개변수(Parameter)는 Java말고도 프로그래밍에서 매우 많이 사용된다. 무언가 기능을 설명 할 때도, 메소드를 다루기 때문에 메소드의 선언부에서 흔하게 볼 수 있다.
public class example{
public static int avg(int a, int b){
return (a+b)/2;
}
public static void main(String[] args){
System.out.println(avg(6,3));
}
}
Java
복사
다음과 같은 평균을 내는 메소드 avg()와 실행부인 메인 메소드 main() 이 있다.
나 또한 두개가 같은 것을 가르키고 있다는 단순한 생각에 대부분 매개변수라고 잘못 명칭하면서 사용했지만 좀 더 정확하게 표현하기 위해서 차이점을 찾아보았다.
인자(Argument)란?
위 코드에서
System.out.println(avg(6,3))에서 6, 3을 인자라고 할 수 있다.
이 말은 메소드에 어떤 값을 넣고 호출 하는 행위 를 할 때 그 값을 인자(Argument)라고 한다.
매개변수(Parameter)란?
위 코드에서
public static int avg(int a, int b){
…
}
public static void main(String[] args){
…
}
두 개의 메소드가 있다. 여기서 대상 메소드가 받는 변수가 정의된 것, 메소드 내에서 사용 되거나 사용 할 값이 정의된 부분을 매개변수(Parameter)라 할 수 있다.
나는 메소드를 호출하는 부분에서도 파라미터라고 불러왔다. 이제 조금 더 알게 되었으니 구분하여 사용하는 버릇을 들여야겠다. 한쪽이라도 기억하고 있으면 다른쪽은 자동이니 호출하면서 전달하는 값이 인자라고 기억하려고 한다.