메서드(Method)는 특정 작업을 수행하는 코드의 묶음이다.
프로그램을 기능별로 나누어 작성할 수 있으며, 필요할 때마다 호출하여 재사용할 수 있다.
메서드는 다음과 같은 형태로 정의한다.
접근제한자 반환형 메서드명() {
실행할 코드
}
예시
public class Method {
public static void say() {
System.out.println("안녕하세요");
}
public static void main(String[] args) {
}
}
public : 어디서든 접근 가능static : 객체를 생성하지 않고 사용할 수 있음void : 반환값이 없음say() : 메서드 이름예시
printName()
sumNumber()
getScore()
정의한 메서드는 메서드 이름을 이용하여 호출할 수 있다.
public class Method {
public static void say() {
System.out.println("안녕하세요");
}
public static void main(String[] args) {
System.out.println("메서드 호출 전");
say();
System.out.println("메서드 호출 후");
}
}
메서드 호출 전
안녕하세요
메서드 호출 후
"메서드 호출 전" 출력say() 호출"안녕하세요" 출력main()으로 돌아옴"메서드 호출 후" 출력메서드는 재사용할 수 있다는 것이 가장 큰 장점이다.
예를 들어 같은 문장을 여러 번 출력해야 한다면,
say();
say();
say();
처럼 메서드를 여러 번 호출하면 된다.
같은 코드를 반복해서 작성하지 않아도 되므로 코드가 훨씬 깔끔해진다.
메서드는 작업을 수행한 후 결과를 호출한 곳으로 돌려줄 수 있다.
이때 사용하는 키워드가 return이다.
접근제한자 반환형 메서드명() {
return 반환값;
}
void와 returnvoidvoid는 반환할 값이 없다는 의미이다.
public static void say() {
System.out.println("안녕하세요");
}
위 메서드는 화면에 출력만 하고 아무 값도 돌려주지 않는다.
returnreturn은 메서드의 실행 결과를 호출한 곳으로 반환하는 키워드이다.
public static int add() {
return 10 + 20;
}
return을 만나면 메서드가 종료되고, 결과값이 호출한 곳으로 전달된다.
public class Method {
public static int add() {
return 10 + 20;
}
public static void main(String[] args) {
int result = add();
System.out.println(result);
}
}
30
add()가 반환한 값 30이 result에 저장된다.
반환된 값은 변수에 저장하거나 계산에 사용할 수 있다.
int result = add();
System.out.println(result);
System.out.println(add() + 10);
출력 결과
30
40
즉, 반환된 값은 다른 계산에 자유롭게 사용할 수 있다.
메서드 이름은 같지만, 매개변수(전달값)의 자료형이나 개수가 다른 메서드를 여러 개 만드는 것을 말한다.
즉, 같은 기능을 수행하지만 전달받는 값이 다를 때 하나의 이름으로 여러 메서드를 정의할 수 있다.
| 구분 | 메서드 이름 | 매개변수(전달값) | 반환형 | 오버로딩 | 이유 |
|---|---|---|---|---|---|
| 기존 메서드 | getPower | int number | int | - | 기준 메서드 |
| 사례 1 | getPower | String strNumber | int | ✅ 가능 | 매개변수의 자료형이 다르다. |
| 사례 2 | getPower | int number, int exponent | int | ✅ 가능 | 매개변수의 개수가 다르다. |
| 사례 3 | getPower | int number | double | ❌ 불가능 | 반환형만 다르고 매개변수가 같다. |