
🔄 메서드 오버로딩 (Method Overloading)
메서드 오버로딩이란 자바(Java)에서 하나의 클래스 안에 이름이 같은 메서드를 여러 개 만들 수 있도록 허용하는 기능입니다.
쉽게 말해, 같은 목적(예: '더하기'나 '계산하기')을 가진 도구를 여러 버전으로 만드는 것이라고 생각할 수 있습니다.
🔑 오버로딩의 규칙 (조건)
메서드 오버로딩이 성립하기 위해서는 이름이 같은 메서드들이 반드시 다음 두 가지 조건 중 하나 이상을 만족해야 합니다.
- 매개변수의 개수가 달라야 합니다. (가장 흔한 경우)
- 매개변수의 타입이 달라야 합니다. (예: 정수 int 대신 실수 double를 사용)
- 매개변수의 순서가 달라야 합니다. (타입이 다를 경우에만 해당)
⚠️ 주의: 메서드의 반환 타입($\text{return type}$)만 다르거나,
매개변수 이름만 다른 것은 오버로딩으로 인정되지 않습니다.
📝 오버로딩 예제
계산기 클래스를 만들어 '더하기'라는 이름의 메서드를 여러 버전
Java
public class Calculator {
// 1. 매개변수가 2개인 더하기 (정수 2개 합)
public int 더하기(int a, int b) {
System.out.println("정수 2개 더하기 버전 실행");
return a + b;
}
// 2. 매개변수의 '개수'가 다름 (정수 3개 합) -> 오버로딩 성립
public int 더하기(int a, int b, int c) {
System.out.println("정수 3개 더하기 버전 실행");
return a + b + c;
}
// 3. 매개변수의 '타입'이 다름 (실수 2개 합) -> 오버로딩 성립
public double 더하기(double a, double b) {
System.out.println("실수 2개 더하기 버전 실행");
return a + b;
}
}
💻 메서드 호출과 선택
자바는 우리가 메서드를 호출할 때 넘겨주는 인수(Argument)의 개수와 타입을 보고,
어떤 더하기 메서드를 실행할지 자동으로 결정합니다.
Java
public static void main(String[] args) {
Calculator calc = new Calculator();
// ① 인수가 2개의 정수(int)이므로 1번 메서드가 호출됨
int result1 = calc.더하기(10, 5);
// ② 인수가 3개의 정수(int)이므로 2번 메서드가 호출됨
int result2 = calc.더하기(10, 5, 2);
// ③ 인수가 2개의 실수(double)이므로 3번 메서드가 호출됨
double result3 = calc.더하기(10.5, 5.2);
/*
출력 결과:
정수 2개 더하기 버전 실행
정수 3개 더하기 버전 실행
실수 2개 더하기 버전 실행
*/
}
🌟 오버로딩을 사용하는 이유
메서드 오버로딩을 사용하면 프로그래밍을 더 직관적이고 편리하게 만들 수 있습니다.
- 일관성 유지: 기능은 같지만 처리하는 데이터가 다를 때, 메서드 이름을 하나로 통일할 수 있습니다. (예: intAdd, doubleAdd 대신 그냥 더하기만 사용)
- 가독성 증가: 사용자(프로그래머)가 메서드의 기능(더하기)을 이름만 보고 바로 알 수 있습니다.
- 편의성 제공: 어떤 타입이나 개수의 데이터를 넘기든, 프로그래머는 항상 똑같은 이름의 메서드만 호출하면 됩니다.
'Java_language' 카테고리의 다른 글
| 자바 범위 (Scope) (0) | 2025.11.24 |
|---|---|
| 메서드 오버라이딩 (Method Overriding) (0) | 2025.11.24 |
| 자바 메서드(Method) (0) | 2025.11.24 |
| 반복문 , 배열 (Array) 기타 예제 (0) | 2025.11.24 |
| Scanner 일반변수,배열변수 입력받기 (0) | 2025.11.24 |