반응형

프로그램을 개발하다 보면 하나의 기능을 갖는 메소드를 만들게 됩니다.

이 기능은 호출시 필요한 이름을 갖게 되는데요.

 

이런 기능은 똑같은 이름으로 여러 개 만들 수 있을까요?

정답은 가능하다 입니다. 바로 이를 메소드 오버로딩이라고 명명합니다.

 

메소드 오버로딩의 의미

위에 설명한 기능이 바로 메소드 오버로딩입니다.

여러 개 지정이 가능하지만 한 가지 조건이 있습니다.

 

매개변수의 타입이나 개수가 서로 달라야 합니다.

위의 조건이 만족할 경우, 같은 이름의 메소드를 얼마든지 중복해서 만들 수 있습니다.

 

장점

왜 이렇게 비슷한 이름의 메소드를 지정하능하게 만들었을까요?

하나의 기능은 비슷하지만 다른 결과를 가져올 수 있습니다.

 

예를 들면 자르다 라는 기능을 알아보겠습니다.

이는 기능은 무엇을 자를지는 모르지만 매체(매개변수)를 다르게

지정하면 같은 기능(이름)이지만 여러 형태의 방법으로 정의할 수 있게 됩니다.

 

예제 소스

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으로

서로 다른 형태의 타입을 요구하고 다른 기능을 수행하고 있습니다.

 

위의 예제가 바로 메소드 오버로딩입니다.

반응형

+ Recent posts