Pharo 中的方法
Methods in Pharo
我还在学习 Pharo,但有点迷茫。有两个 class,CarRental
和 Car
,还有一个 Test
class,CarRentalTest
。
有固定数量的车,同一辆车不能租两次,我有code,但是有错
| 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
我尝试初始化 availableCars
和 rentedCard
方法,但仍然存在问题。
您需要跟踪租来的汽车,对吗?为此,将 ivar rented
添加到 CarRental
class 并将其初始化为空集合:
rented := OrderedCollection new.
(换句话说,在 #initialize
方法中包含上面的行 - 实例端。)
现在,每次租车时都将其添加到 rented
集合中:
rent: aCar
rented add: aCar
以及还车时
return: aCar
rented remove: aCar
您还可以添加目前缺少的 getter 方法
rentedCars
^rented
并将可供出租的汽车计算为
availableCars
^cars copyWithoutAll: rented
我还在学习 Pharo,但有点迷茫。有两个 class,CarRental
和 Car
,还有一个 Test
class,CarRentalTest
。
有固定数量的车,同一辆车不能租两次,我有code,但是有错
| 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
我尝试初始化 availableCars
和 rentedCard
方法,但仍然存在问题。
您需要跟踪租来的汽车,对吗?为此,将 ivar rented
添加到 CarRental
class 并将其初始化为空集合:
rented := OrderedCollection new.
(换句话说,在 #initialize
方法中包含上面的行 - 实例端。)
现在,每次租车时都将其添加到 rented
集合中:
rent: aCar
rented add: aCar
以及还车时
return: aCar
rented remove: aCar
您还可以添加目前缺少的 getter 方法
rentedCars
^rented
并将可供出租的汽车计算为
availableCars
^cars copyWithoutAll: rented