首页
学习
活动
专区
圈层
工具
发布

法罗法
EN

Stack Overflow用户
提问于 2019-01-10 13:25:42
回答 1查看 312关注 0票数 3

我还在学习法老,但这有点让人困惑。有两个类,CarRentalCar,以及TestCarRentalTest

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

代码语言:javascript
复制
| 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方法,但仍然存在一个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-10 19:38:55

你需要追踪租来的车,对吧?为此,将ivar rented添加到CarRental类并将其初始化为空集合:

代码语言:javascript
复制
rented := OrderedCollection new.

(换句话说,将上面的行包含在#initialize方法-实例端。)

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

代码语言:javascript
复制
rent: aCar
  rented add: aCar

当车还回来时

代码语言:javascript
复制
return: aCar
  rented remove: aCar

此外,还可以添加到目前为止缺少的getter方法。

代码语言:javascript
复制
rentedCars
  ^rented

并计算出可供出租的汽车

代码语言:javascript
复制
availableCars
  ^cars copyWithoutAll: rented
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54129716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档