[英]Methods in Pharo
我還在學習Pharo,但這有點令人困惑。 有兩個類, CarRental
和Car
,以及一個Test
類, CarRentalTest
。
有固定數量的車,同一輛車不能租兩次,我有代碼,但有一個錯誤。
| carRental redPanda yellowPanda blackTesla |
carRental := CarRental new.
redPanda := Car panda.
yellowPanda := Car panda.
blackTesla := Car tesla.
carRental
addCar: redPanda;
addCar: yellowPanda;
addCar: blackTesla.
self assert: carRental availableCars size equals: 3.
carRental rent: redPanda days: 5.
self assert: carRental availableCars size equals: 2.
self assert: carRental rentedCars size equals: 1
我嘗試初始化availableCars
和rentedCard
方法,但仍然存在問題。
你需要跟蹤租來的汽車,對吧? 為此,將rented
的ivar添加到CarRental
類並將其初始化為空集合:
rented := OrderedCollection new.
(換句話說,在#initialize
方法中包含上面的行 - 實例端。)
現在,每次租車時都將其添加到rented
集合中:
rent: aCar
rented add: aCar
當汽車返回時
return: aCar
rented remove: aCar
您還可以添加到目前為止缺少的getter方法
rentedCars
^rented
並計算可供出租的汽車
availableCars
^cars copyWithoutAll: rented
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.