자바에서는 (클래스 내의) 함수를 메서드(Method)라고 부른다.
같은 계산을 여러 번 반복해야 할 때, 코드를 여러 개 작성하고 모든 계산을 수정해야 할 때, 각각의 코드를 일일이 수정해야 하는 단점을 보완하기 위해 나온 것이 바로 메서드이다. 특정 기능을 캡슐화해 정의하면 여러 번 재사용이 가능해 편리하다. 즉, 큰 프로그램을 세분화해 관리하여 코드의 가독성을 향상해 디버깅을 쉽게 만드는 모듈성을 나타낸다.
또한 변수의 이름이 명사로 주로 쓰인다면, 클래스의 이름은 동사가 주로 쓰인다.
1. 메서드 정의 방법
public static int add (int a, int b) {
메서드가 실행되면 수행할 코드
return (int 리턴값);
}
public: 다른 클래스에서 호출 가능한 메서드
static: 객체를 생성하지 않고 호출할 수 있는 정적 메서드
int: 메서드 실행 결과의 반환 타입 (반환값이 없으면 void를 적어야 한다.)
add: 메서드 이름
(int a, int b): 메서드를 선언할 때 전달받는 입력값으로 해당 메서드 안에서만 사용되고 매개변수(parameter)라고 한다. (입력값이 없는 메서드는 적지 않아도 된다.)
// 인수와 메서드의 타입과 개수가 맞아야 하고, 타입이 다르더라도 명시적 형변환을 해주거나 자동 형변환이 가능한 상황엔 실행 가능하다.
return: 메서드가 반환할 값을 써주고 return;을 만나면 해당 메서드는 종료된다. (void의 경우엔 적지 않아도 된다.)
2. 메서드 호출
int sum1 = add (5, 10);
// 메서드를 호출할 때 넘기는 값 5, 10 들을 인수, 인자 (Argument)라고 한다.
// sum1 변수에 add메서드의 반환값인 15 저장
// 호출이 끝나면 파라미터변수인 int a, int b, sum 변수 모두 제거됨
3. add 메서드 생성 및 호출 코드 예시


4. 출력값이 존재하는 메서드의 경우엔 무조건 출력값과 동일한 타입의 return 값이 존재해야 한다.
예) if 문이 참일 때만 return문을 쓰면 컴파일 오류 발생 코드

5. return문은 값을 반환하는 역할 외에도 return을 만나면 그 즉시 메서드를 빠져나간다.

6. 메서드 오버로딩
자바는 메서드의 이름뿐만이 아니라 매개변수 정보를 함께 사용해 메서드를 구분한다.
메서드 시그니처 = 메서드 이름 + 매개변수
매개변수(타입, 개수, 순서)는 다르지만 용도가 동일하고 같은 이름의 메서드를 만들고 싶을 때 메서드 오버로딩 (Over loading)을 사용한다.
오버로딩 가능
add(int a, int b)
add(int a, int b, int c)
add(double a, double b)
오버로딩 불가능 <= 메서드 시그니처가 동일하고 반환 타입만 다름 (컴파일 오류)
int add(int a, int b)
double add(int a, int b)
'백엔드 > Java' 카테고리의 다른 글
| [Java 기본] 19. 기본형과 참조형 (0) | 2025.08.30 |
|---|---|
| [Java 기본] 18. 클래스와 객체 (3) | 2025.08.18 |
| [Java 입문] 16. 2차원 배열, for-each문 (4) | 2025.08.05 |
| [Java 입문] 15. 배열 (0) | 2025.08.05 |
| [Java 입문] 14. 스캐너 Scanner / println( ) (0) | 2025.07.31 |