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 |
댓글