繁体   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