Pharo中的方法

时间:2019-01-10 13:25:42

标签: smalltalk pharo

我仍在学习Pharo,但这有点令人困惑。有两个类CarRentalCar,还有一个TestCarRentalTest

有固定数量的汽车,同一辆车不能租两次,我有密码,但是有一个错误。

| 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方法,但是仍然存在问题。

1 个答案:

答案 0 :(得分:4)

您需要跟踪租车,对吗?为此,将ivar -50添加到rented类并将其初始化为空集合:

CarRental

(换句话说,将上述行包含在rented := OrderedCollection new. 方法中-实例端。)

现在,每次租车时,将其添加到#initialize集合中:

rented

以及返还汽车时

rent: aCar
  rented add: aCar

您还可以添加到目前为止缺少的getter方法

return: aCar
  rented remove: aCar

并计算出可供出租的汽车

rentedCars
  ^rented