• 카테고리

    질문 & 답변
  • 세부 분야

    보안

  • 해결 여부

    미해결

js 메소드

21.05.02 18:28 작성 조회수 181

0

overload()메소드가 자바스크립트에서는 없는 메소드 인것 같은데 어떤 역할을 하는건가요? java.lang.String을 넣은 이유가 뭔지 모르겠습니다. 

원래 메소드 implementation시 인자 없을 때는 chall_05.chall05().implementation = function() {} 작성하는 것은 이해합니다.

메소드에 매개변수가 있을 때는 overload() 메소드를 써야하는 건가요? 

답변 1

답변을 작성해보세요.

0

김태영님의 프로필

김태영

2021.05.04

안녕하세요. 보안프로젝트 김태영입니다.

 

overload() 메서드를 이해하려면 먼저 "자바 오버로딩" 개념에 대해 알고 계시면 좋습니다.

 

"자바 오버로딩"이란 클래스 내에 같은 이름을 가진 메서드가 여러 개 존재하고, 각 메서드마다 서로 다른 매개변수를 가지고 있는 메서드를 정의하는 것입니다.

 

만약에 A라는 클래스 내에 B라는 이름을 가진 메서드가 3개가 아래와 같이 존재한다고 생각해봅시다.

이름이 같은 3개의 메서드를 각각 호출하기 위해선 매개변수로 구분하여 호출이 가능합니다.

1>> B(String str)

2>> B(String str, int num)

3>> B(int num1, int num2)

overload("java.lang.String")로 지정하면 첫 번째 메서드가 호출이되고, overload("java.lang.String", "int")로 지정하면 두 번째 메서드가 호출됩니다.

 

챌린지 다섯번째 문제에서 chall05 메서드는 MainActivity 클래스 내에 한 개만 존재하므로 위에서 다룬 방법으로 호출하지 않더라도 가능합니다.

다만, 해당 문제에서 overload()를 사용을 해보기 위해 넣은 것이었습니다.

다시 정리하면, chall05 이름을 가진 메서드는 MainActivity 클래스 내에 한 개만 존재하므로 

chall_05.chall05().overload("java.lang.String").implementation = function(arg) {}

또는

chall_05.chall05().implementation = function(arg) {}

로 작성 가능합니다.

 

감사합니다.