본문 바로가기

반응형

이번 글에서는 메서드 오버로딩(Method Overloading)을 통해
같은 이름의 메서드를 매개변수 형태에 따라 구분하여 정의하고 호출하는 방법을 학습합니다.
오버로딩을 사용하면 이름이 같더라도 다양한 입력 상황에 맞춰 메서드를 유연하게 사용할 수 있습니다.


📦 클래스 코드 (calculator.java)

package ch06.sec08.exam04;

public class calculator {
	double areaRectangle(double width) {
		return width * width;
	}

	double areaRectangle(double width, double height) {
		return width * height;
	}
}

📌 실행 코드 (calculatorExample.java)

package ch06.sec08.exam04;

public class calculatorExample {
	public static void main(String[] args) {
		calculator cal = new calculator();

		double re1 = cal.areaRectangle(10);
		double re2 = cal.areaRectangle(10, 20);

		System.out.println("정사각형 넓이 : " + re1);
		System.out.println("직사각형 넓이 : " + re2);
	}
}

💬 코드 설명

  • areaRectangle(double width)
    한 변만 주어진 정사각형의 넓이를 계산
    → width * width
  • areaRectangle(double width, double height)
    가로와 세로가 다른 직사각형의 넓이를 계산
    → width * height
  • 메서드 이름은 같지만 매개변수 수가 다르기 때문에 구분 가능

💻 실행 결과

정사각형 넓이 : 100.0
직사각형 넓이 : 200.0

📌 간단 정리

메서드 호출 결과
areaRectangle(10) 10 × 10 = 100.0
areaRectangle(10, 20) 10 × 20 = 200.0

💡 포인트 정리

  • 메서드 오버로딩이름이 같아도 매개변수 형태가 다르면 여러 메서드를 정의할 수 있음
  • 매개변수의 또는 타입이 달라야 함
  • 오버로딩을 통해 이름이 같은 메서드를 다양한 상황에 맞게 사용할 수 있어 가독성 향상
  • 호출할 때 전달하는 인자에 맞는 메서드가 자동으로 선택됨
댓글