반응형
프로그램을 개발하다 보면 하나의 기능을 갖는 메소드를 만들게 됩니다.
이 기능은 호출시 필요한 이름을 갖게 되는데요.
이런 기능은 똑같은 이름으로 여러 개 만들 수 있을까요?
정답은 가능하다 입니다. 바로 이를 메소드 오버로딩이라고 명명합니다.
메소드 오버로딩의 의미
위에 설명한 기능이 바로 메소드 오버로딩입니다.
여러 개 지정이 가능하지만 한 가지 조건이 있습니다.
매개변수의 타입이나 개수가 서로 달라야 합니다.
위의 조건이 만족할 경우, 같은 이름의 메소드를 얼마든지 중복해서 만들 수 있습니다.
장점
왜 이렇게 비슷한 이름의 메소드를 지정하능하게 만들었을까요?
하나의 기능은 비슷하지만 다른 결과를 가져올 수 있습니다.
예를 들면 자르다 라는 기능을 알아보겠습니다.
이는 기능은 무엇을 자를지는 모르지만 매체(매개변수)를 다르게
지정하면 같은 기능(이름)이지만 여러 형태의 방법으로 정의할 수 있게 됩니다.
예제 소스
import java.io.IOException;
import pkgtest.account;
class sword {
void cut(int cnt){
System.out.println(cnt + "개의 잡초를 잘랐습니다.");
}
void cut(String wood){
System.out.println(wood+ "를 잘랐습니다.");
}
}
public class cut extends account{
public static void main(String[] args) throws IOException {
sword sw = new sword();
sw.cut(2000);
sw.cut("밤나무");
}
}
결과
소스를 보시면 Sword 클래스 내에
두 개의 cut메소드가 존재하고 있습니다.
메소드 명은 동일하지만 매개변수는 int, string으로
서로 다른 형태의 타입을 요구하고 다른 기능을 수행하고 있습니다.
위의 예제가 바로 메소드 오버로딩입니다.
반응형
'Dev > Java' 카테고리의 다른 글
[Java] 메소드 오버라이딩 사용 예제와 샘플 소스 (0) | 2022.11.17 |
---|---|
[Java] 생성자 사용법 [초기화 및 오버로딩] (0) | 2022.11.16 |
[Java] 상속 사용법과 예제 구현 소스 (0) | 2022.11.14 |
[Java] 지그재그 수열 출력 알고리즘 예제 (1) | 2022.11.07 |
[Java] 접근제어자 정의 및 사용법 (Access Modifier) (0) | 2022.11.07 |