VisualWorksIntroduction:Page09

From 흡혈양파의 번역工房
Jump to navigation Jump to search

cincom_tutorial_vwlogo
cincom_tutorial_cincomlogo


입문서 : 컬렉션(Bag)(파트 1)

cincom_tutorial_stlogo

cincom_tutorial_openbook 컬렉션 클래스(와, 그 서브 클래스)는 스몰토크언어의 특징중 하나입니다. 다른 언어에서는 줄줄이 기술해야하는 코드가, 스몰토크에서는 단 하나의 메시지로 끝납니다. 이제 Bag 객체를 사용해봅시다.
cincom_tutorial_certificate 이 레슨에서는 Bag 객체를 소개하고 특징적인 기능을 몇 가지 해설하겠습니다.
cincom_tutorial_steps 1. VisualWorks를 실행하지 않은 경우엔 실행시켜 주십시오


2. VisualWorks 메인 런쳐 화면에서 툴바 맨 뒤에 있는 버튼을 클릭하거나, Tool>>Workspace 메뉴를 선택해 주십시오.


3. Workspace에 아래 내용을 입력해 주십시오.

| myBag | 
myBag := Bag new. 
myBag add: 'dog'. 
myBag add: 'cat'. 
myBag inspect.


4. 모든 텍스트를 반전하고 <오퍼레이트 클릭>실행을 선택해 주십시오.

새로운 Inspector 화면이 표시됩니다. 화면의 타이틀은 a Bag입니다.


5. Inspector 화면의 왼쪽 창에 표시되어있는 self를 선택해 주십시오.

Bag('dog' 'cat')이 표시됩니다.


6. Inspector 화면 왼쪽 창에 표시된 contents를 선택해 주십시오.

Dictionary('dog' ->1 'cat'->1)이 표시됩니다.

그림 B-1. Bag 객체의 Inspector 화면
그림 B-2. Bag의 내용


7. Inspector 화면을 닫아주십시오.

cincom_tutorial_question Bag 컬렉션은 어떤 작동을 하나요?

Bag의 정의로서, 실제 가방과 매우 비슷합니다. 왜냐면, Bag에 투입한 것은 무엇이든 보유하기 때문입니다. 단, 일반적으로 Bag 안에 넣는, 혹은 존재하는 아이템은 무언가 공통되는 부분이 있습니다.(즉 그룹으로서 닮은 무언가) 위 예시의 경우, 작은 동물 그룹입니다. 넣는 것은 무엇이든 격납하는 것 외에 멋진 특징중 하나로, "같은" 아이템을 카운트 하는 기능이 있습니다. 위의 예문과 아래 예문의 차이를 비교해보십시오.

cincom_tutorial_steps 8. Workspace에 아래와 같이 입력해 주십시오.
| myBag | 
myBag := Bag new. 
myBag add: 'dog'. 
myBag add: 'cat'. 
myBag add: 'dog'. 
myBag add: 'cat'. 
myBag add: 'dog'. 
myBag inspect.

9. 모든 텍스트를 반전시키고 <오퍼레이트 클릭>실행을 선택해 주십시오.

새로운(Inspector) 화면이 표시됩니다. 화면의 타이틀은 a Bag입니다.


10. Inspector 화면의 왼쪽 창에 표시된 self를 선택해 주십시오.

Bag('dog' 'dog' 'dog' 'cat' 'cat')이 표시됩니다.


11. Inspector 화면의 왼쪽 창에 표시된 contents를 선택해 주십시오.

Dictionary ('dog'->3 'cat'->2)가 표시됩니다.

그림 B-3. Bag 객체의 인스팩터 화면
그림 B-4. Bag 객체의 내용


12. Inspector 화면을 닫아 주십시오.

cincom_tutorial_question Bag의 동작을 확인할 수 있었나요?

첫줄에서는 임시변수 mybag를 선언했습니다. 두 번째 행에서는 새로운 bag 객체의 작성을 스몰토크에 지시, 임시변수에 그것을 대입했습니다. 세 번째 행에서는 Bag 객체에 문자열로서 'dog'를 추가했습니다. 다음 행에서는 Bag 객체에 문자열로서 'cat'을 추가했습니다. 그리고 'dog'를 2회, 'cat'을 1회 추가했습니다. 그리고 Bag객체를 Inspect하도록 스몰토크에 지시했습니다.

'dog'를 두 번째에 추가하는 코드를 실행하면, 스몰토크는 Bag 객체 안을 보고 'dog'가 이미 존재하는 것을 발견하고, 'dog'의 카운트를 증가시키고, Bag에 'dog'를 넣습니다. 수많은 프로그래밍 언어에서는 자신이 이 프로그램을 적어야 합니다. 스몰토크에서는 언어 가운데 들어가 있습니다.

cincom_tutorial_certificate 정리

Bag는 어떠한 아이템이라도 격납할 수 있습니다. 그리고 각 아이템이 Bag 객체 가운데 얼마나 있는지 카운트한 값을 가지고 있습니다. Bag에는 관련된 메서드가 많이 있습니다만, 여기서는 Bag로 아이템을 추가하는 방법과 Bag의 각 아이템 카운트를 표시하는 방법만 설명했습니다.


| 이전으로 돌아가기 |