我正在尝试学习Smalltalk(Pharo),但是由于没有太多可用的文献资料,我想寻求帮助。 我有两个类,CarRental和Car,以及一个Test类,CarRentalTest。 现在,高级租赁服务拥有固定数量的汽车。
| carRental |
carRental := CarRental new.
carRental
addCar: Car panda;
addCar: Car panda;
addCar: Car tesla.
self assert: carRental totalCars size = 3
但是,我的addCar方法是红色的,我该如何解决?
答案 0 :(得分:3)
有很多有关pharo的文档:
这里有一些提示:
现在,关于您的问题,很难找到答案,这取决于很多事情,例如:容器是Set还是OrderedCollection? Car panda
回答什么? Car的新实例还是始终相同?
答案 1 :(得分:1)
您的方法addCar:
为红色(请注意末尾的冒号),因为您尚未定义它。然后把它写下来:
类CarRental
必须具有一个实例变量,该变量将容纳其所有汽车。假设我们将其命名为cars
。
在initialize
方法(实例端)中,我们需要执行以下操作
CarRental >> initialize
super initialize.
cars := OrderedCollection new.
现在,如果我们创建CarRental
的新实例,它的OrderedCollection
ivar中将有一个空的cars
。
现在我们可以像这样添加addCar:
方法
CarRental >> addCar: aCar
cars add: aCar
最后,请确保您有类似的内容
CarRental >> totalCars
^cars size
查看您的代码并继续尝试!