728x90
오버로딩이란 무엇인가?
오버로딩이란 한 클래스 혹은 한 개체 안에 같은 이름의 메서드 혹은 같은 이름의 생성자를 여러 개 정의하는 것을 의미합니다. 오버로딩이 성립하기 위한 조건은 메서드 혹은 생성자의 이름이 같아야 합니다. 단 매개변수의 개수가 다르거나 매개변수의 개수가 같다면 자료형이 달라야 합니다.
매개변수의 개수가 다른 경우
public int calculation(int a, int b){
int result;
result = a+b;
return result;
}
public int calculation(int a, int b, int c){
int result;
result = a*b*c;
return result;
}
위의 예시처럼 매개변수의 개수가 다른 경우 메서드의 이름이 같아도 문제가 없습니다. 메서드를 호출하였을 때 매개변수를 2개 입력하면 두 수를 더하는 작업을 할 것이고 매개변수를 3개 입력한다면 세 개의 수를 곱하는 작업을 합니다.
public static void main(String[] args){
int a = calculation(3,4);
int b = calculation(3,4,5);
System.out.println(a);//결과는 7이 나옵니다.
System.out.println(b);//결과는 60이 나옵니다.
}
매개변수의 자료형이 다른 경우
위의 예시와 같이 매개변수의 개수 대신 매개변수의 자료형이 다른 경우도 가능합니다.
public int calculation(int a, int b){
int result;
result = a+b;
return result;
}
public int calculation(double a, int b){
int result;
result = a*b;
return result;
}
public int calculation(int a, double b){
int result;
result = a-b;
return result;
}
위의 예시처럼 입력해주는 값의 자료형이 다른 경우도 오버로딩이 가능합니다. 메서드를 호출할 때 둘 다 정수형을 입력하면 두 수를 더하게 되고 앞의 값은 실수형 뒤의 값은 정수형을 입력하면 두 수를 곱합니다. 첫 번째의 입력 값이 정수형 두 번째의 입력 값이 실수형이라면 두 수를 빼게 됩니다. 이러한 식으로 입력되는 매개변수의 차이에 따라 작업이 다른 경우 여러 가지 메서드 혹은 생성자를 설정하는 것을 오버로딩이라고 합니다.
728x90