반응형
오버라이딩과 오버로딩에 대해 공부하다가
이제 뭔지는 알겠는데 특히 오버로딩은 어떤 경우에 사용하는지 알고싶어졌다.
학습 기록 용도로 작성한 글이기 때문에 지적은 환영하나 악플은
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);
- processFile(String fileName)
파일 이름(fileName)을 필수로 받는다. 유효성 검사(validate)를 수행하지 않고 기본값을 사용한다. - 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);
오버로딩을 통해 다양한 매개변수 조합에 대한 편의 메서드를 제공할 수 있는데
위와 같이 활용하면 메서드를 호출할 때 더 편리하게 사용할 수 있으며,
가독성을 높이고 사용자의 편의성 또한 개선할 수 있다.
반응형
'활동 > 호기심' 카테고리의 다른 글
스프링 게시판 CRUD 만들기 (HTTP Method / GET방식과 POST방식) (0) | 2023.09.21 |
---|---|
Java에서 페이지 이동시 Redirect와 Forward 차이가 뭔데 (0) | 2023.09.20 |
Integer은 어떨 때 사용하는가 (내가 봐도 정리 깔끔) (0) | 2023.09.01 |
for문과 foreach문은 어떨 때 쓰면 좋을까 (0) | 2023.09.01 |
아니 자바에서 static이 도대체 뭔데 (클래스와 메소드) (0) | 2023.08.29 |