본문 바로가기
언어/JAVA

Method Overloading

by hazel_ 2021. 5. 29.

Method Overloading이란?

같은 이름의 함수에서 인자의 타입 혹은 개수를 다르게 하여, 인자의 종류에 따라 다른 동작을 수행할 수 있게끔 하는 기능이다.

 


여기 add 함수가 있다.

public static void main(String[] args) {
	System.out.println(add(1,2));
}
public static int add(int a, int b) {		
	return a+b;
}

위의 add함수의 경우 int형 타입의 변수 2개만을 받아 그 합을 return해준다.

그렇다면, add에 int형이 아닌 double형 값을 넣게 되면 어떻게 될까?

add함수는 int형만을 받아서 계산하기 때문에 double값을 넣으면 에러가 발생한다.

 

이럴때 사용하는 것이 Method Overloading이다.

public static void main(String[] args) {
	System.out.println(add(1,2));
	System.out.println(add(1.1,2.5));
}
public static int add(int a, int b) {		
	return a+b;
}
public static double add(double a, double b) {		
	return a+b;
}

같은 이름의 함수를 사용하면서, return값 또는 함수의 인자 값의 형태가 달라지게 만들 수 있다.

 


그럼 만약에! input의 타입은 정해져있지만, 갯수를 가변적으로 하고 싶다면 어떻게 하면 될까?

public class test02 {

	public static void main(String[] args) {
		System.out.println(add(1,2));
		System.out.println(add(1.1,2.5));
		System.out.println(add(1,2,3,4,5,6,6,7));
	}
	public static int add(int a, int b) {		
		return a+b;
	}
	public static double add(double a, double b) {		
		return a+b;
	}
	public static int add(int ... a) {
		int sum=0;
		for(int n : a) sum+=n;
		return sum;
	}
}

int ... a와 같이 하면된다. 

a는 배열의 형식으로 입력이 되고, a를 다루기 위해서는 배열을 다뤘던 방식 그대로 하면 된다.

'언어 > JAVA' 카테고리의 다른 글

JAVA 입력  (0) 2021.07.20
Constructor 생성자  (0) 2021.05.29
Setters, Getters  (0) 2021.05.26
Class  (0) 2021.05.26
JAVA  (0) 2021.05.26

댓글