매개변수와 인수 / Call by value

jay·2022년 8월 9일
0

학습리뷰

목록 보기
6/7
post-thumbnail

아는 것 같았지만 애매했던 것들 정리. 매개변수와 인수는 같은 위치에 있는 것으로 보니까 말로하다보면 섞어서 표현하기 쉬운데, 아래와 같이 구분 할 수 있다.

1. 매개변수/인수

매개변수(parameter) : 메소드에 입력으로 전달된 값을 받는 변수

int sum(int a, int b) {  // a, b 는 매개변수
	     return a+b;
}

인수(arguments) : 메소드를 호출할 때 전달하는 입력값

int c = sample.sum(3, 4);  // 3, 4는 인수

내 방식의 설명으로는

  • 매개변수 : 넘겨 받을 위치에 있을 때/메소드 정의할 때
  • (입력)인수 : 넘겨 주는 위치에 있을 때/메소드를 사용할 때

2. return으로 빠져나가기

메서드의 리턴값이 void형이라면 return 으로 break 같이 실행이 가능하다. void가 아닌 경우 오류가 나니 주의

void sayNick(String nick) {
        if ("fool".equals(nick)) {
            return;
        }
        System.out.println("나의 별명은 "+nick+" 입니다.");
    }

3. 메서드 내 변수의 효력 범위 Call by value

아래와 같을 때 a 값은 증가 되지 않는다. a는 메서드 안에서만 효력이 있으므로 varTest의 매개변수 a는 main에 있는 a와 다른 b로 봐야함.

public class Sample {
    void varTest(int a) {  // int b
        a++;              // b++
    }

    public static void main(String[] args) {
        int a = 1;
        Sample sample = new Sample();
        sample.varTest(a);
        System.out.println(a);
    }
}

그럼에도 증가를 시키려면 기본형 primitive 을 인수로 넘기는 것이 아니라 자료형을 넘기는 방식으로 하면 됨.

class Updater {
    void update(Counter counter) {
        counter.count++;
    }
}

myUpdater.update(myCounter);

profile
It's not magic, it's talent and sweat. Bertram Gilfoyle.

0개의 댓글

관련 채용 정보