SqueakByExample:1.9: Difference between revisions
Onionmixer (talk | contribs) (책 검수) |
(No difference)
|
Latest revision as of 08:53, 12 August 2017
메서드 찾기
때로는, 여러분이 메서드의 이름을 추측할 수 있거나, 클래스의 이름보다는 적어도 메서드 이름의 작은 부분을 보다 더 쉽게 추측 할 수 있습니다. 예를 들어, 만약 현재 시간이 궁금할 경우, "now"라 불리는 메서드나 하위 문자열에 "now"를 포함하는 메서드를 기대할 수 있을 것입니다. 그런데 이 메서드는 어디에 있을까요? Method Finder 가 도와드릴 수 있습니다.
"Tools flap" 밖으로 method finder 아이콘을 끌어내십시오. 상단 왼쪽 창에 "now"를 입력하고 accept 하십시오. (또는 그냥 return 키를 누르십시오.)
Method Finder 는 하위 문자열 "now" 를 포함하고 있는 모든 메서드 이름의 목록을 표시할 것입니다. "now" 를 향해 스크롤을 내리려면, 목록으로 커서를 옮기고 "n"을 입력합니다. 이 기술은 모든 스크롤 창에서 동작합니다. "now" 를 선택하면 그림 1.18에서 보시는 바와 같이 오른쪽 창에서 이 이름으로 정의된 세가지 클래스 및 메서드를 보여줍니다. 이 항목 중 아무거나 한가지를 선택하면 해당 창에 브라우저를 엽니다.
평소에는 메서드가 존재한다는 바람직한 생각을 갖고 계시겠지만, 그것이 어떤 이름으로 불리는 지에 대한 생각은 하고 있지 못하실 것입니다. 이 상황에서도 Method Finder 는 도움가 도움을 줄 수 있습니다! 예를 들면, 'eureka' 를 'EUREKA' 로 모든 문자를 대문자로 변환하는 상황을 가정해봅시다.
그림 1.19에서 보이는 것처럼 'eureka'.'EUREKA'를 메서드 검색에 입력하고 RETURN키를 누르십시오.
Method Finder 는 여러분이 원하는 메서드를 제시할 것입니다. Method Finder 의 우측 패인의 각각의 라인 시작부분에 있는 *(별표) 문자는 요청한 결과를 가져오기 위해 실제로 사용한 메서드임을 가리킵니다. 따라서, String asUppercase 의 앞 부분의 *(별표) 문자는, String 클래스에 정의된 asUppercase 메서드를 실행했으며, 우리가 원했던 결과를 반환했음을 의미합니다. *(별표)를 갖고 있지 않은 메서드는 기대했던 결과를 반환하는 메서드와 동일한 이름을 가진 다른 메서드입니다. 따라서 'eureka' 는 Character 객체가 아니므로 Characater>>asUppercase 를 실행하지 않았습니다.
또한 인자를 가진 메서드에 대해서도 Method Finder 를 사용할 수 있습니다. 예를 들어, 만약 여러분이 두 개의 정수의 최대 공약수를 찾는 메서드를 찾고 있다면, 그 예로 '25'. '35'. '5' 를 시도해볼 수 있습니다. 또한 탐색 범위를 좁히기 위해 메서드 검색에 여러 가지 예제를 제시할 수도 있으며, 하단 창에 있는 도움말 텍스트로 더 많은 내용을 설명합니다.