- 메서드 오버로딩(Method Overloading) = 메서드 다중정의
- 동일한 이름의 파라미터가 다른 메서드를 여러번 정의 하는 것
- 동일한 기능을 수행하지만, 전달받는 파라미터가 달라야 할 경우
- 메서드 이름을 각각 따로 지정해야하지만, 오버로딩을 사용하여 정의하면
- 메서드 이름을 동일하게 정의하고 파라미터만으로 각각의 메서드를 구별할수 있다
- -주의사항 메서드 시그니쳐(이름,리턴타입,파라미터,접근제한자)중에서
- 파라미터를 제외한 나머지는 동일하게 정의함
- => 외부에서 호출할 때 메서드 파라미터(소괄호) 데이터만으로 각 메서드를 구분하도록 함
<메서드 오버로딩 규칙(택 1)>
1. 메서드 파라미터의 타입이 달라야함
2. 메서드 파라미터의 갯수가 달라야함
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class OverLoadingMethod{
// 정수 2개를 전달 받아 덧셈 하는 메서드
public void add(int a, int b){
System.out.println(a+b);
}
// 실수 2개를 전달 받아 덧셈 하는 메서드
public void add(double a, double b){
System.out.println(a+b);
} // 정수 3개를 전달 받아 덧셈하는 메서드
public void add(int a, int b, int c){
System.out.println(a+b+c);
}
}
|
cs |
동일한 출력문 수행 작업이 중복되는 코드를 줄이는법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
class WalkTestGood{
public void walk() {
int distance = 100;
System.out.println(distance + "cm 이동");
}
public void walk(int distance){
walk(distance, "cm");
}
public void walk(int distacne, String unit){
switch(unit){
case "cm" : break;
case "inch" : distance *=2.54; break;
default System.out.println("잘못된 단위");
distance=0;
}
System.out.println(distance + "cm 이동");
}
|
cs |
'Language > Java' 카테고리의 다른 글
접근제한자 (Access Modifier = 접근제어자) (0) | 2020.05.28 |
---|---|
가변인자 (0) | 2020.05.27 |
메서드(Method) (0) | 2020.05.27 |
Class (0) | 2020.05.26 |
향상된 for문(=for each 문) (0) | 2020.05.26 |