Over Load
- (함수의) 이름만 같고, 매개변수의 자료형이나 개수가 다른 함수 == 동명이인
- 왜 오버로딩을 하는가? -> 기능의 세분화
- 같은 기능을 수행하지만 입력 받는 매개변수가 달라야 할 경우
오버로딩 함수의 예시 : Integer.parseInt()
String str = "123";
int num10 = Integer.parseInt(str); // 문자열을 10진수로
str = "1010";
num10 = Integer.parseInt(str, 2) // 이진수를 10진수로
코드 예시 1 : 매개변수의 자료형이 다른 경우
void method(char c) {
System.out.println("MyClass3 method(char c)");
}
void method(int i) {
System.out.println("MyClass3 method(int i)");
}
// 호출부
cls.method('A');
cls.method(123);
코드 예시 2 : 매개변수의 입력 받는 순서가 다른 경우
void method(char c, int i) {
System.out.println("MyClass3 method(char c, int i)");
}
void method(int i, char c) {
System.out.println("MyClass3 method(int i, char c)");
}
// 호출부
cls.method('B', 123);
cls.method(123, 'C');
가변인수
- 0개 이상의 매개변수를 전달 가능함
- ... 으로 형식 처리
- 가변 인자는 내부적으로 배열로 처리됨
int count(int...number) {
int count = 0;
for (int i=0; i<number.length; i++) {
count = count + number[i];
}
return count;
}
// 호출부
System.out.println(cls.count(1, 2, 3));
System.out.println(cls.count(10,9));
System.out.println(cls.count());
실행결과