overloading : 중복 정의
>> 하나의 클래스 내에서 동일한 이름의 메소드를 여러 개 정의하는 것
## 변수는 같은 영역 내에서 동일한 이름의 재선언이 불가능!
오버로딩 성립 조건
1) 메소드 이름이 같을것
2) 매개변수의 개수, 타입이 다를 것
## 반환타입은 오버로딩과 상관이 없음
오버로딩의 장점
사용자가 메소드의 매개변수 순서를 외우지 않아도 사용 가능
작업의 본질이 동일한 메소드를 하나의 이름으로 그룹화>>코드의 재사용성과 가독성을 향상
컴파일 시 타입 체크 강화>>올바른 매개변수를 가진 메소드를 자동 선택
오버로딩의 단점
중복적으로 의미없이 생성할 경우, 실질적으로 필요한 구현 메소드 찾기가 어려움
예시
class Calc {
int add (int a, int b) { return a + b; }
// long add (int a, int b) {return a + b;}
// 실제 반환되는 값의 차이가 아닌, 입력받는 매개변수의 차이가 필요
// 반드시 매개변수의 개수 또는 타입의 구성이 달라야 한다
// 매개변수 타입 차이
int add (short a, short b) { return a + b; }// 개수 동일, 구성 상이
double add (double x, double y) { return x + y; }
double add (int x, double y) { return x + y; }
double add (double x, int y) { return x + y; }
// 매개변수 개수 차이
int add (int a, int b, int c) { return a + b + c; }
}
public class F_Overloading {
public static void main(String[] args) {
Calc calc = new Calc();
System.out.println(calc.add(10, 20, 30));
System.out.println(calc.add(10, 20));
System.out.println(calc.add(10.5, 20.3));
System.out.println(calc.add(10.3, 30));
System.out.println(calc.add(10, 29.4));
}
}
'java' 카테고리의 다른 글
18. 생성자 (0) | 2025.02.25 |
---|---|
실습) 오버로딩 연습 (0) | 2025.02.25 |
실습) 야구선수 평가하기 (0) | 2025.02.25 |
17. 메소드-3 메소드의 종류 (0) | 2025.02.25 |
실습) 사칙연산 클래스 만들기 (0) | 2025.02.25 |