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는 알아서 그에 맞춰서 구현해준다.