1. Class Browser로 Object의 하위 클래스로 HouseKeepingBookItem 클래스를 만드세요. Object subclass: #HouseKeepingBookItem 2. 다음을 실행하세요 testItem := HouseKeepingBookItem new. 에러가 납니까? 당연합니다! HouseKeepingBookItem에 name: 이라는 매쏘드를 안만들어 줬으니까요. "Debug"버튼을 누릅니다. 디버깅 창의 왼쪽 상단 리스트에 팝업메뉴를 불러 "implement·······"메뉴를 고릅니다. 어떤 클래스에다 만들지 물어보네요. 답해줍니다. testItem name: '스포츠신문'.를 다시 한번 해봅니다. 에러가 납니까? name: aString name := aString.
testItem value: 500. name value: anInteger value date: aDate date
housekeepingbook := housekeepingbook collect: [:item| ?????????? ]. housekeepingbook := housekeepingbookcollect: [ :each |
원하는 값에 바로 접근이 가능해진것 같아요... 6. Class Browser로 Object의 하위 클래스로 HouseKeepingBook 클래스를 만드세요. Workspace에 있는 변수들 pocketMoney와 housekeepingbook을 각각 testBook의 pocketMoney와 items에 담습니다. 2번과 같은 방법으로 하시면 됩니다. Object subclass: #HouseKeepingBook items: aItem items pocketMoney: aInteger pocketMoney 7. HouseKeepingBook 에 sum 이라는 매쏘드를 만들어서 금액의 총합을 리턴하게 하세요. (원금을 포함하도록 하세요) sum ^self items inject: pocketMoney into: [
isSurplus ^(self sum > 0)
statusString self isSurplus ifTrue: [^'아싸!흑자'] ifFalse: [^'에고...적자']
itemsOfYear: aYear ^self items select: [:each | each date year = aYear]
sumOfYear: aYear ^(self itemsOfYear: aYear) inject: 0 into: [:sum :item | sum + (item value)] |
'Programing > Smalltalk' 카테고리의 다른 글
변수 이름으로 배열 만들기 - Array with: 변수명 with: 변수명 (0) | 2006.10.09 |
---|---|
가계부 만들기 - 04 (0) | 2006.10.08 |
가계부 만들기 - 02 (0) | 2006.10.08 |
가계부 만들기 - 01 (0) | 2006.10.08 |
변수와 메세지 그리고 이벤트... (0) | 2006.05.15 |