본문 바로가기

Study/Java

[Java] 오버로딩

오버로딩

하나의 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것이다. 하나의 이름을 가진 메소드에 여러 가지 기능을 과적(overloading)한 것이라고 생각하면 된다.

오버로딩의 조건

  • 메소드의 이름이 같고,
  • 매개변수의 개수와 타입이 달라야 한다.

이름이 같아도 매개 변수로 구분이 가능해지기 때문에 오버 로딩이 성립하는 것이다.

오버로딩의 예시

println 메소드가 대표적인 예이다!

데이터 타입에 따라 오버로딩 된 메소드들 중 하나가 실행된다.

void println(int x); 
void println(String x);

오버로딩의 장점

  1. 이름을 고민할 필요가 없어진다.
    • 같은 기능을 하는데 파라미터가 다양한 경우, 오버로딩이 불가능하다면각자  다른 이름을 정해야  것이다 문제를 해결해 주는 것이 바로 오버로딩이다. 
      • printlnInt(), printlnString() ... 이렇게 하나하나  정해줘야 했을 것이다.
  2. 기능 예측이 쉬워진다.
    • 메소드의 이름이 같으면 "같은 기능을 하겠구나"라는 예측이 가능해진다.

가변인자

메소드의 파라미터 개수를 동적으로 받는 것을 의미한다.

int add(int a, int b, int... args){ //int[] array 처럼 배열도 가능하다!
    ...
}

위에서 정의한 add 함수의 경우는 이렇다.

int형의 파라미터를 무조건 두 개를 받고, 추가적으로 add하고 싶은 파라미터를 추가적으로 넘겨줄 수 있는 것이다.

  • 주의! 가변인자는 무조건 맨 뒤에 넣어주자. 동적으로 들어오기 때문에, 가변인자가 앞에 쓰이면 어디서부터 어디까지가 가변인자인지 판단이 되지 않기 때문이다.

'Study > Java' 카테고리의 다른 글

[Java] 변수의 초기화  (0) 2020.03.10
[Java] 생성자와 this  (0) 2020.03.10
[Java] 변수와 메소드  (0) 2020.03.10
[Java] 클래스와 객체  (0) 2020.03.10