
값을 넣으면(매개변수) 메서드가 처리해 결과를 돌려줍니다(반환값).
지난 편에서 클래스 안에 동작(메서드) 을 담는다고 했습니다. 이번에는 그 메서드를 제대로 들여다봅니다. 같은 계산을 여러 번 해야 할 때, 코드를 매번 복사해 붙일까요? 그럴 필요 없습니다. 한 번 만들어 이름을 붙여 두고 필요할 때마다 부르는 것이 오늘의 주제, 메서드입니다.
메서드가 뭔가요?
메서드는 일 하나를 이름 붙여 묶어 둔 코드 덩어리입니다. 이름을 부르면 그 안의 코드가 실행됩니다.
쉽게 — 자판기 버튼과 같습니다. '커피' 버튼을 누르면 안에서 정해진 과정이 돌아가 커피가 나옵니다. 버튼을 누를 때마다 커피 만드는 법을 새로 설명하지 않죠. 메서드도 한 번 정의해 두면, 이름만 불러 몇 번이든 다시 쓸 수 있습니다.
메서드 만들고 부르기
가장 단순한 메서드부터 봅니다. 인사말을 출력하는 일을 sayHello라는 이름으로 묶습니다.
static void sayHello() {
System.out.println("안녕하세요");
}
이렇게 정의해 두면, main에서 이름을 불러 실행합니다. 부를 때는 이름 뒤에 괄호 ()를 붙입니다.
sayHello(); // "안녕하세요" 출력
sayHello(); // 다시 불러 또 출력
한 번 만든 코드를 두 번, 세 번 재사용하는 것이 메서드의 첫 번째 장점입니다.
값을 주고받기 — 매개변수와 반환값
메서드의 진짜 쓸모는 값을 받아 처리해 돌려줄 때 나옵니다. 받는 값을 매개변수, 돌려주는 값을 반환값이라 합니다.
static int add(int a, int b) {
return a + b; // 두 값을 더해 돌려줌
}
add(3, 5)처럼 부르면 a에 3, b에 5가 들어가고, return이 그 결과인 8을 돌려줍니다. 돌려받은 값은 변수에 담아 쓸 수 있습니다.
int sum = add(3, 5); // sum 에 8이 담김
System.out.println(sum); // 8
맨 앞의 int는 돌려줄 값의 종류(반환타입) 입니다. 더한 결과가 정수니까 int라고 적어 둔 것입니다.

그림 1. int add(int a, int b) { return a + b; } 를 네 부품으로 나눠 보면 구조가 한눈에 들어옵니다.
void — 돌려줄 게 없을 때
앞의 sayHello처럼 출력만 하고 돌려줄 값이 없는 메서드도 있습니다. 이때 반환타입 자리에는 '없음'을 뜻하는 void를 씁니다.
static void printLine() {
System.out.println("----------");
}
정리하면 이렇습니다. 결과를 돌려줘야 하면 int·String 같은 타입과 return을, 그냥 실행만 하면 void를 씁니다.
단골 함정 — 호출할 때 괄호
메서드를 부를 때 괄호 () 를 빠뜨리는 실수가 잦습니다. 괄호가 있어야 "지금 실행하라"는 뜻이 됩니다.
sayHello; // 오류: 괄호가 없어 실행 명령이 아님
sayHello(); // 정상: 메서드 실행
또 하나. return 타입을 int로 적어 놓고 아무것도 돌려주지 않으면 오류가 납니다. 반환타입과 실제 return 값의 종류가 맞아야 합니다.
직접 실행해 보기
아래 코드를 돌려 보고, add에 다른 숫자를 넣거나 새로운 메서드를 하나 더 만들어 불러 보세요.
public class Main {
// 두 수를 더해 결과를 돌려주는 메서드
static int add(int a, int b) {
return a + b;
}
// 돌려줄 값이 없는 메서드
static void sayHello() {
System.out.println("안녕하세요");
}
public static void main(String[] args) {
sayHello();
int sum = add(3, 5);
System.out.println(sum);
System.out.println(add(10, 20));
}
}📱 코드 실행(실습)은 태블릿·PC에서 이용할 수 있어요. 모바일에서는 위 코드를 눈으로 따라가며 확인하세요.
한 장 정리
| 용어 | 뜻 |
|---|---|
| 메서드 | 일 하나를 이름 붙여 묶은 코드 |
| 매개변수 | 메서드가 받는 입력값 (int a, int b) |
| 반환값 | 메서드가 돌려주는 결과 return |
| 반환타입 | 돌려줄 값의 종류 int, 없으면 void |
| 호출 | 이름 뒤 () 를 붙여 실행 |
이것만 기억하면 됩니다. 메서드는 반복되는 코드를 이름 붙여 재사용하는 것입니다. 값을 받으려면 매개변수, 결과를 돌려주려면 반환타입과 return, 돌려줄 게 없으면 void 를 씁니다. 부를 때는 이름 뒤에 괄호를 잊지 마세요.
미니 퀴즈
개념을 제대로 잡았는지 직접 풀어 봅니다. 정답은 눌러야 나옵니다.
미니 퀴즈
포켓코딩(JAVA2) 2편 · 예제 출처: 강사 개인 GitHub 저장소. 다음 편: 생성자 — 객체를 만들 때 처음 값을 채우는 법.