Smalltalk(Pharo)方法

时间:2019-01-07 16:31:06

标签: methods smalltalk

我正在尝试学习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方法是红色的,我该如何解决?

2 个答案:

答案 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

查看您的代码并继续尝试!