개발하는 체대생

Parameter(매개변수)와 Argument(인자) 본문

취업스터디

Parameter(매개변수)와 Argument(인자)

개발하는체대생
질문 : Parameter와 Argument의 차이에 대해 설명해주세요.

답변 : Parameter는 함수를 정의할 때 함수에 전달할 인자의 '변수명'을 의미하며, Argument는 함수를 호출할 때 '실제로 전달되는 값(데이터)'을 의미합니다.

Parameter(매개변수)

매개변수(Parameter)는 함수나 메소드를 정의할 때 함수에 전달되는 인자의 값을 받을 변수를 지정하는 것을 의미합니다.

public class ExmpleParameter {
    public int sum(int parameter1, int parameter2) { 
        // 'int parameter1, int parameter2'가 매개변수(Parameter)입니다.
    }
}

Argument(인자)

인자(Argument)는 함수나 메소드를 호출할 때 전달되는 값입니다. 즉, 함수나 메소드를 호출할 때, 파라미터에 대응되는 값들을 전달하게 됩니다.

public class ExmpleParameter {
    public int sum(int parameter1, int parameter2) { 
        // 'int parameter1, int parameter2'가 매개변수(Parameter)입니다.
    }
}


public class Main {
    public static void main(String[] args) {
        ExmpleParameter exmpleParameter = new ExmpleParameter();
        int result = exmpleParameter.sum(2, 3);
        //'2, 3'이 인자(Argument)값 입니다.
        System.out.println(result);
    }
}

 

Parameter와 Argument의 차이

파라미터는 함수를 정의할 때 사용되며, 아규먼트는 함수를 호출할 때 사용됩니다. 파라미터와 아규먼트는 서로 대응되어야 하며, 개수와 타입이 일치해야 합니다.

 

함수 호출 방식

함수를 호출할 때는 크게 두 가지 방식이 있습니다. 첫 번째는 위치에 의한 호출 방식(Positional Call)이며, 두 번째는 키워드에 의한 호출 방식(Keyword Call)입니다.

 

위치에 의한 호출 방식

위치에 의한 호출 방식은 아규먼트의 위치가 파라미터와 일대일 대응되도록 함수를 호출하는 방식입니다. 즉, 함수의 파라미터 순서에 맞게 아규먼트를 전달하는 것입니다.

public int sum(int x, int y) {
    int result = x + y;
    return result;
}

int result = sum(2, 3);
//x=2, y=3

 

키워드에 의한 호출 방식

키워드에 의한 호출 방식은 파라미터 이름을 직접 명시하여 값을 전달하는 방식입니다. 이 방식은 아규먼트의 순서를 신경쓰지 않고, 함수를 호출할 수 있습니다.

public void person(String name, int age, String gender) {
    System.out.println("Name: " + name);
    System.out.println("Age: " + age);
    System.out.println("Gender: " + gender);
}

person(age=20, name="Alice", gender="Female");
//직접 명시하여 값을 전달하기 때문에 순서에 신경쓰지 않고 함수를 호출할 수 있습니다.

 

결론

Parameter(매개변수)와 Argument(인자)는 함수나 메소드를 호출할 때 사용되는 개념으로서 파라미터는 함수를 정의할 때 함수에 전달되는 인자의 값을 받을 변수를 지정하는 것이며, 인자는 함수를 호출할 때 실제 전달되는 값입니다. 파라미터와 아규먼트는 서로 대응되어야 하며, 개수와 타입이 일치해야 합니다.

'취업스터디' 카테고리의 다른 글

TCP와 UDP (3-way handshake, 4-way handshake)  (0) 2023.03.31
프로세스와 스레드  (0) 2023.03.31
자료구조 List, Set, Map, HashMap  (0) 2023.03.30
제네릭이란?  (0) 2023.03.29
MSA(Micro Service Architecture)란?  (0) 2023.03.29
Comments