아는 것 같았지만 애매했던 것들 정리. 매개변수와 인수는 같은 위치에 있는 것으로 보니까 말로하다보면 섞어서 표현하기 쉬운데, 아래와 같이 구분 할 수 있다.
매개변수(parameter) : 메소드에 입력으로 전달된 값을 받는 변수
int sum(int a, int b) { // a, b 는 매개변수
return a+b;
}
인수(arguments) : 메소드를 호출할 때 전달하는 입력값
int c = sample.sum(3, 4); // 3, 4는 인수
내 방식의 설명으로는
메서드의 리턴값이 void형이라면 return 으로 break 같이 실행이 가능하다. void가 아닌 경우 오류가 나니 주의
void sayNick(String nick) {
if ("fool".equals(nick)) {
return;
}
System.out.println("나의 별명은 "+nick+" 입니다.");
}
아래와 같을 때 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);