본문 바로가기
Language/Java

메서드 오버로딩(Method Overloading)

by 태윤2 2020. 5. 27.
  • 메서드 오버로딩(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.54break;
 
    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