JAVA
JAVA 메서드 오버로딩
yn98
2024. 7. 2. 12:25
메서드 오버로딩이란?
하나의 클래스 안에 메서드 시그니쳐가 다르다면 같은 함수명을 사용해도 이를 허용한다는 뜻이다.
( => 함수명 중복정의 허용★)
보통 비슷하거나 같은 기능일때에 사용된다.
메서드 오버로딩의 장점
- 코드의 중복을 줄일 수 있다.
- 코드의 가독성을 높여준다.
- 프로그램의 유지보수가 용이해진다.
메서드 오버로딩의 단점
- 메서드의 개수 많아질수록 코드가 복잡해질 수 있다.
- 오버로딩된 개수가 많아질수록, 컴파일러가 적절한 메서드를 찾기 위해 처리시간이 추가적으로 필요할 수 있다.
아래는 오버로딩의 예시이다.
public class Test01 {
public static int plus(int a, int b) { // 정수 2개를 입력받은경우
System.out.println("1"); // 로그
return a+b;
}
public static int plus(int a, int b, int c) { // 정수 3개를 입력받은경우
System.out.println("2");
return a+b+c;
}
public static double plus(double a, double b) { // 실수 2개를 입력받은경우
System.out.println("3");
return a+b;
}
public static double plus(double a, double b, double c) { // 실수 3개를 입력받은경우
System.out.println("4");
return a+b+c;
}
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
int num3 = 30;
int result = plus(num1, num2, num3);
int result2 = plus(num1, num2);
}
}
위 코드에는 plus 메서드가 4개나 정의되어있는데, 위 4개의 plus메서드의 매개변수의 개수 또는 타입이 모두 다르다.
내가 원하는대로 매개변수의 개수랑 타입을 정의내린 메서드 내에서 입력하면, JAVA는 알아서 그에 맞춰서 구현해준다.