활동/호기심

메서드 오버로딩(Overloading) 언제 쓰는지 깔끔하고 간단히 정리

ByeongJun 2023. 9. 4. 16:34
반응형
 

[Do it! 점프 투 자바] 05. 객체 지향 프로그래밍 (상속 / 메서드 오버라이딩과 오버로딩 요약)

* 본 게시물은 이지스퍼블리싱 [Do it! 점프 투 자바] 서평단 미션 수행 및 학습 목적으로 작성하였습니다. 모든 내용, 디자인, 이미지, 편집 구성의 저작권은 이지스퍼블리싱(주)와 지은이에게 있

3mmmeee.tistory.com

오버라이딩과 오버로딩에 대해 공부하다가 

이제 뭔지는 알겠는데 특히 오버로딩은 어떤 경우에 사용하는지 알고싶어졌다. 

 

학습 기록 용도로 작성한 글이기 때문에 지적은 환영하나 악플은 

무서웡

 

 

 

 

 

1. 다양한 데이터 타입 처리

동일한 작업을 다양한 데이터 타입에 대해 수행해야 할 때 메서드 오버로딩을 사용한다. 

int add(int a, int b);
double add(double a, double b);

숫자 덧셈을 수행하는 메서드를 정수와 부동 소수점 숫자 모두에 대해 오버로딩 할 때 

 

 

 

 

 

2. 매개변수 개수에 따라 다른 동작 

void logMessage(String message);
void logMessage(String message, LogLevel level);

메시지를 로그에 출력하는 메서드를 

메세지만 출력하거나 메시지와 로그 레벨을 함께 출력할 수 있도록 할 때

 

 

 

 

 

3. 기본값 설정

오버로딩으로 메서드에 기본값을 설정할 수 있다. 

 

메서드를 호출할 때 일부 매개변수만 필수로 전달하고

나머지 매개변수는 선택적으로 전달하도록 하는 것이다.

void processFile(String fileName);
void processFile(String fileName, boolean validate);
  1. processFile(String fileName)
    파일 이름(fileName)을 필수로 받는다. 유효성 검사(validate)를 수행하지 않고 기본값을 사용한다.
  2. processFile(String fileName, boolean validate)
    파일 이름(fileName)을 필수로 받으며, 두 번째 매개변수로 유효성 검사 여부를 지정할 수 있다. 

메서드를 호출 할 때 validate 매개변수를 전달하지 않으면 자동으로 false로 처리된다. 

 

위와 같이 활용하면 메서드를 호출할 때 필요한 매개변수만 전달하고 나머지는 기본값으로 처리된다.

이는 메서드를 더 유연하게 사용할 수 있고 필요한 옵션을 선택적으로 전달할 수 있게 한다. 

 

 

 

 

 

4. 같은 작업을 다른 매개변수 조합으로 수행 

void sendData(String data, String destination);
void sendData(byte[] data, String destination);
void sendData(String data, String destination, boolean compress);

메서드가 여러 개의 매개변수를 받아 같은 작업을 다른 매개변수 조합으로 수행해야 할 때 

 

 

 

 

 

5. 편의 메서드 제공 

void drawLine(int x1, int y1, int x2, int y2);
void drawLine(Point start, Point end);

오버로딩을 통해 다양한 매개변수 조합에 대한 편의 메서드를 제공할 수 있는데 

 

위와 같이 활용하면 메서드를 호출할 때 더 편리하게 사용할 수 있으며, 

가독성을 높이고 사용자의 편의성 또한 개선할 수 있다.

반응형