티스토리 뷰
✨ 메소드 오버로딩
- 메소드 오버로딩(overloading)이란 같은 이름의 메소드를 중복하여 정의하는 것을 의미한다. 자바에서는 원래 한 클래스 내에 같은 이름의 메소드를 둘 이상 가질 수 없다. 하지만 매개변수의 개수나 타입을 다르게 하면, 하나의 이름으로 메소드를 작성할 수 있다. 즉, 메소드 오버로딩은 서로 다른 시그니처를 갖는 여러 메소드를 같은 이름으로 정의하는 것이라고 할 수 있다.
이러한 메소드 오버로딩을 사용함으로써 메소드에 사용되는 이름을 절약할 수 있는데 메소드를 호출할 때 전달해야 할 매개변수의 타입이나 개수에 대해 크게 신경을 쓰지 않고 호출할 수 있기 때문이다. 메소드 오버로딩은 객체 지향 프로그래밍의 특징 중 하나인 다형성(polymorphism)을 구현하는 방법 중 하나이다.
public class C_01 {
public static int getPower(String strNumber) {
int number = Integer.parseInt(strNumber);
return number * number;
}
public static int getPower(int number) {
int result = number * number;
return result;
}
public static int getPower(int number, int exponent) {
int result = 1; // 지역 변수
for (int i=0; i < exponent; i++) {
result *= number;
}
return result;
}
public static void main(String[] args) {
System.out.println(getPower("4"));
System.out.println(getPower(4));
System.out.println(getPower(2,4));
}
}
// 지역 변수: 중괄호 안에서만 사용가능
// 메소드 오버로딩: 이름은 같지만 전달값의 타입/ 자료형/ 갯수가 다른 메소드를 중복해 선언 가능
- 다음 코드는 다른 자료형과 갯수의 전달값을 갖는 메소드를 중복해 사용한 예시이다. 같은 이름의 메소드를 사용했지만 올바른 결과값이 나오는 것을 확인할 수 있다.
- 메소드 오버로딩의 조건: 1. 메소드의 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다.
- 지역변수: 메소드 내에 선언된 변수이다. 해당 메소드 내에서만 사용할 수 있으므로, 서로 다른 메소드라면 같은 이름의 변수를 사용해도 된다.
'Algorithm > Java' 카테고리의 다른 글
자바 기본편 - 용어 정리 (0) | 2023.02.13 |
---|---|
자바 기본편 - 메소드 퀴즈 (0) | 2023.02.10 |
자바 기본편 - 전달값과 반환값 (0) | 2023.02.09 |
자바 기본편 - 메소드 (0) | 2023.02.08 |
자바 기본편 - 배열의 순회 (0) | 2023.02.04 |