마법 상자, 메서드

지금까지 우리는 void main() 안에 모든 코드를 넣어왔습니다. 하지만 코드가 길어지면 어떨까요? 자주 사용하는 명령 묶음을 마법 상자처럼 이름을 붙여 꺼내 쓸 수 있습니다.

자바에서는 이 마법 상자를 **메서드(Method)**라고 부릅니다. 다른 언어에서는 “함수(Function)“라고 부르기도 하지만, 자바에서는 메서드가 공식 이름입니다.


메서드 만들기

static void sayHello() {
    System.out.println("안녕하세요!");
}

void main() {
    sayHello(); // 사용!
}

번역:

sayHello라는 마법 상자를 정의한다 {
    "안녕하세요!"를 출력하고 한 줄 밑으로 이동해라;
}

프로그램의 시작점 {
    sayHello 상자를 열어라(사용해라)!
}

상자를 한 번 만들어두면, sayHello()라고만 써도 상자 속의 모든 명령이 실행됩니다.

앞에 붙은 static은 지금은 “main에서 바로 쓰려면 필요한 키워드”라고만 기억해두세요.


재료를 넣는 메서드 (매개변수)

자판기에 동전을 넣으면 음료수가 나오듯, 메서드에게도 재료를 전달할 수 있습니다.

static void greet(String name) {
    System.out.println("반가워요, " + name + "님!");
}

void main() {
    greet("홍길동");
    greet("자바");
}

번역:

greet라는 마법 상자를 정의한다 (재료는 문장 타입이고 name이라고 부를게) {
    "반가워요, "와 name 내용물, "님!"을 합쳐서 출력;
}

프로그램의 시작점 {
    greet 상자 사용 (재료는 "홍길동");
    greet 상자 사용 (재료는 "자바");
}

결과:

반가워요, 홍길동님!
반가워요, 자바님!

결과를 돌려주는 메서드 (return)

마법 상자가 일을 끝내고 결과를 우리에게 다시 돌려줄 수도 있습니다. 이때 return을 사용하고, void 대신 돌려줄 타입을 적어줍니다.

static int add(int a, int b) {
    return a + b;
}

void main() {
    int result = add(10, 20);
    System.out.println("결과는: " + result);
}

번역:

add라는 마법 상자를 정의한다 (재료는 숫자 a와 b야): 결과물은 숫자(int)로 나올 거야 {
    a와 b를 더한 값을 바깥으로 돌려준다(return);
}

프로그램의 시작점 {
    add 상자에 10과 20을 넣어서 나온 결과를 result라고 외워라;
    "결과는: "과 result를 출력;
}

void는 무슨 뜻?

void main()에서 봤던 void가 기억나시나요? void는 “돌려줄 게 없다”는 뜻입니다.

  • void sayHello() → 인사만 하고 끝 (돌려줄 것 없음)
  • int add(int a, int b) → 숫자를 돌려줌

왜 메서드를 쓰나요?

  1. 귀찮음을 줄여줍니다: 똑같은 코드를 여러 번 쓸 필요가 없어요.
  2. 코드가 깔끔해집니다: 긴 코드를 이름표(메서드명)가 붙은 상자에 담아두니 보기에 편합니다.
  3. 수정이 쉽습니다: 상자 속 내용물만 바꾸면, 그 상자를 쓰는 모든 곳이 한꺼번에 바뀝니다.

이제 여러분은 나만의 마법 상자를 만드는 제작자가 되었습니다!