簡體   English   中英

方法中的方法

[英]Methods in Pharo

我還在學習Pharo,但這有點令人困惑。 有兩個類, CarRentalCar ,以及一個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

我嘗試初始化availableCarsrentedCard方法,但仍然存在問題。

你需要跟蹤租來的汽車,對吧? 為此,將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM