Bag의 정의로서, 실제 가방과 매우 비슷합니다. 왜냐면, Bag에 투입한 것은 무엇이든 보유하기 때문입니다. 단, 일반적으로 Bag 안에 넣는, 혹은 존재하는 아이템은 무언가 공통되는 부분이 있습니다.(즉 그룹으로서 닮은 무언가) 위 예시의 경우, 작은 동물 그룹입니다. 넣는 것은 무엇이든 격납하는 것 외에 멋진 특징중 하나로, "같은" 아이템을 카운트 하는 기능이 있습니다. 위의 예문과 아래 예문의 차이를 비교해보십시오.
첫줄에서는 임시변수 mybag를 선언했습니다. 두 번째 행에서는 새로운 bag 객체의 작성을 스몰토크에 지시, 임시변수에 그것을 대입했습니다. 세 번째 행에서는 Bag 객체에 문자열로서 'dog'를 추가했습니다. 다음 행에서는 Bag 객체에 문자열로서 'cat'을 추가했습니다. 그리고 'dog'를 2회, 'cat'을 1회 추가했습니다. 그리고 Bag객체를 Inspect하도록 스몰토크에 지시했습니다.
'dog'를 두 번째에 추가하는 코드를 실행하면, 스몰토크는 Bag 객체 안을 보고 'dog'가 이미 존재하는 것을 발견하고, 'dog'의 카운트를 증가시키고, Bag에 'dog'를 넣습니다. 수많은 프로그래밍 언어에서는 자신이 이 프로그램을 적어야 합니다. 스몰토크에서는 언어 가운데 들어가 있습니다.
정리
Bag는 어떠한 아이템이라도 격납할 수 있습니다. 그리고 각 아이템이 Bag 객체 가운데 얼마나 있는지 카운트한 값을 가지고 있습니다. Bag에는 관련된 메서드가 많이 있습니다만, 여기서는 Bag로 아이템을 추가하는 방법과 Bag의 각 아이템 카운트를 표시하는 방법만 설명했습니다.