• 카테고리

    질문 & 답변
  • 세부 분야

    취업 · 이직

  • 해결 여부

    미해결

큰돌님~! 오버로딩 질문있습니다!

23.06.29 15:41 작성 조회수 166

-1

오버로딩 설명 해주실때

class Person {

void pay(String a, int b) {

System.out.println(a + "가" + b + "원만큼 계산합니다. ");

}

void pay(int a, String b) {

System.out.println(b + "가" + a + "원만큼 계산합니다. ");

}

}

public class MyClass {

public static void main(String args[]) {

Person p = new Person();

p.pay("영주",100000);

p.pay(100000,"영주");

}

}
이렇게 말씀하셨는데! 오버로딩을 하면서 pay함수를 2번이나 썼는데 그래도 코드가 깔끔하다라고 정의를 하나요?
좋은 코드는 중복되는 코드가 없어야된다 이렇게 들었었는데!

답변 1

답변을 작성해보세요.

0

안녕하세요 3030님 ㅎㅎ

저 함수는 똑같은 함수가 2개가 있는게 아닙니다.

이렇게 말씀하셨는데! 오버로딩을 하면서 pay함수를 2번이나 썼는데 그래도 코드가 깔끔하다라고 정의를 하나요?

>> pay라는 함수 2개가 아니라 다른 pay함수 한개씩이라고 보시면 됩니다.

void pay(String a, int b) {

System.out.println(a + "가" + b + "원만큼 계산합니다. ");

}

void pay(int a, String b) {

System.out.println(b + "가" + a + "원만큼 계산합니다. ");

}

두개의 함수, 매개변수의 순서가 다른 함수라고 보시면 되며 그걸 의미하는 것이 바로 오버로딩입니다.

 

그렇다면 이 오버로딩으로 왜 코드가 깔끔해질까요?

이렇게 생각하시면 됩니다.

예를 들어 pay_str_int라는 함수와 pay_int_str 이라는 함수 2개를 만들어서 pay() 함수를 하는데 하나는 매개변수가 str부터, 하나는 int부터하는 것을 구별하기 보다는 저렇게 오버로딩 해서 pay라는 네이밍으로 여러개를 구현하는게 더 깔끔해지는 것이다라고 보시면 됩니다.

 

감사합니다.

dch3030님의 프로필

dch3030

질문자

2023.07.07

아하 좋은 답변 감사합니다~!!