728x90
반응형
메서드 오버로딩(Method Overloading)
메서드 오버로딩이란 하나의 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것을 의미한다. 매개변수의 개수, 자료형, 순서 등을 다르게 하여 같은 이름의 여러 기능을 하는 여러 개의 메서드를 만드는 것이다.
이것은 “overload”라는 영어단어의 사전적 의미 ‘과적하다 / 부담을 지우다’를 생각하면 이해하기 쉬운데 같은 이름의 메서드에 여러 기능을 구현 시키기 때문이라고 생각하면 된다.
public class MethodOverloadingExample {
public static void main(String[] args) {
int a = 3, b = 5, c = 7;
double d = 2.5, e = 4.8;
System.out.println(add(a, b)); // 8
System.out.println(add(a, b, c)); // 15
System.out.println(add(d, e)); // 7.3
}
public static int add(int a, int b) {
return a + b;
}
public static int add(int a, int b, int c) {
return a + b + c;
}
public static double add(double a, double b) {
return a + b;
}
}
이렇게 같은 이름의 add라는 메서드를 세 개 만들어서 출력하였다. add라는 각 메서드는 서로 다른 타입의 매개변수를 가지고 있다. 메서드의 이름 또는 매개변수의 타입이 다르면 다른 메서드라고 인식하는 자바 가상머신기능을 통해 각각 다른 값의 출력이 가능한 것이다.
✅ 메소드 오버로딩 방법
- 같은 이름의 메서드명 사용
- 매개 변수의 개수나 타입 다르게 정의
그럼 서로 다른 이름의 메소드를 만들어 구현해도 될 것 같은데 굳이 왜 메소드 오버로딩을 쓰는 것일까? 이 또한 객체 지향 프로그래밍과 연관이 있다.
✅ 메서드 오버로딩을 사용하는 이유
- 메서드 이름의 일관성 유지
메서드 오버로딩을 사용하면 이름은 같고 매개변수만 다른 여러 메서드를 정의할 수 있다. 이렇게 하면 메서드 이름이 간결하고 일관성 있게 유지된다. - 코드 재사용
메서드 오버로딩을 사용하면 유사한 작업을 수행하는 여러 메서드를 정의할 수 있다. 이렇게 하면 메서드를 재사용할 수 있어서 코드의 중복을 줄일 수 있다. - 코드 가독성 향상
메서드 오버로딩을 사용하면 비슷한 기능을 수행하는 메서드들을 묶어서 하나의 클래스 안에 두면서 코드의 가독성을 향상시킬 수 있다.
객체지향언어의 특징인 다향성 중 하나인 오버로딩에 대해 배워봤다. 오버라이딩에 대해 배우면 또 정리해서 올려야지 : )
728x90
반응형
'LANGUAGE > JAVA' 카테고리의 다른 글
[JAVA] 기본 변수 와 참조 변수 / 하루 종일 걸려 이해한 참조 변수 쉽게 이해하기 위해 정리 (0) | 2023.04.25 |
---|---|
[JAVA] System.arraycopy 배열에 값 추가하기 / 배열 복사 메서드 (0) | 2023.04.24 |
[JAVA] 필드(Field)와 메서드(Method) / 변수의 구분 (0) | 2023.04.22 |
[JAVA] 클래스(Class) 와 객체(Object) / 객체와 인스턴스의 차이 (0) | 2023.04.21 |
[JAVA] 객체 지향 프로그래밍 기초 / 추상화란? OOP의 특성 알기 (0) | 2023.04.21 |