티스토리 뷰

Web/JAVA

[JAVA] 메서드 Overloading

Aaron 2019. 7. 26. 12:31
반응형

참고 : https://data-make.tistory.com/201 (생성자 Overloading)



#. 메서드 Overloading

  * 하나의 클래스에 동일한 이름의 메서드가 여러개 중복되어 정의되는 것


> 변수의 중복 선언

  - 데이터 타입이 달라도 변수 이름이 동일한 경우 허용하지 않음


> 메서드의 중복 정의

  - 변수와 달리 하나의 클래스에 동일한 이름의 메서드는 여러개 정의 가능

  - 매개변수의 개수와 타입을 통해 실행될 메서드를 구분할 수 있기 때문

  - JAVA와 같은 객체지향 언어에서만 제공되는 독특한 문법

1
2
3
4
public void printData(int data) { }
public void printData(double data) { }
public void printData(char data) { }
public void printData(String data) { }
cs


> 메서드 Overloading의 유형

  1. 매개변수의 개수와 타입이 모두 다른 경우 => Overloading

1
2
3
4
5
class Overloading {
    void calc() { ... }
    void calc(double d) { ... }
    void calc(int x, int y) { ... }
}
cs

  2. 리턴 타입이 다른 경우 => error

1
2
3
4
class Overloading {
    void calc(int x, int y) { ... }
    void calc(int x, int y) { ... return x + y ;}
}
cs


  3. 매개변수의 이름이 다른 경우 => error

1
2
3
4
class Overloading {
    void calc(int x, int y) { ... }
    void calc(int a, int b) { ... }
}
cs


  4. 매개변수의 개수와 타입이 같지만 순서가 다른 경우 => Overloading

1
2
3
4
class Overloading {
    void calc(double x, int y) { ... }
    void calc(int y, double x) { ... }
}
cs


  5. 매개변수가 형변환된 다른 타입인 경우 => Overloading

1
2
3
4
5
6
7
8
9
10
11
class Overloading {
    void calc(double x) { ... }    
    void calc(int x, int y) { ... }
}
 
public class Test {
    public static void main(String[] args) {
        ...
        over.calc(45);   // int는 double로 묵시적 형변환이 가능
        ...
}
cs



출처 : SW Expert Academy



반응형

'Web > JAVA' 카테고리의 다른 글

[JAVA] this()의 의미와 사용  (0) 2019.07.26
[JAVA] 생성자 Overloading  (0) 2019.07.26
[JAVA] 이클립스 메서드 자동 구현 (Getter/Setter, toString)  (0) 2019.07.25
[JAVA] 메서드 정의, 구성  (0) 2019.07.25
[JAVA] 접근 제한자  (0) 2019.07.25
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday