【问题标题】:Methods in PharoPharo 中的方法
【发布时间】:2019-01-10 13:25:42
【问题描述】:

我还在学习 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 方法,但仍然存在问题。

【问题讨论】:

  • 请描述“问题”。
  • 当我尝试编译代码时,我遇到了“消息 availableCars & rentedCards sent but not implemented”

标签: smalltalk pharo


【解决方案1】:

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

rented := OrderedCollection new.

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

现在,每次您租车时都将其添加到 rented 收藏:

rent: aCar
  rented add: aCar

什么时候还车

return: aCar
  rented remove: aCar

你也可以添加目前缺少的getter方法

rentedCars
  ^rented

并将可供出租的汽车计算为

availableCars
  ^cars copyWithoutAll: rented

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多