Methods Smalltalk(Pharo)方法

Methods Smalltalk(Pharo)方法,methods,smalltalk,Methods,Smalltalk,我正在尝试学习Smalltalk(Pharo),但由于没有那么多可用的文档,我想寻求一些帮助。 我有两个班,CarRental和Car,还有一个测试班,CarRentalTest。 现在,supporse租赁服务有固定数量的汽车 | carRental | carRental := CarRental new. carRental addCar: Car panda; addCar: Car panda; addCar: Car tesla. self assert: c

我正在尝试学习Smalltalk(Pharo),但由于没有那么多可用的文档,我想寻求一些帮助。 我有两个班,CarRental和Car,还有一个测试班,CarRentalTest。 现在,supporse租赁服务有固定数量的汽车

| carRental |
carRental := CarRental new.
carRental
    addCar: Car panda;
    addCar: Car panda;
    addCar: Car tesla.
self assert: carRental totalCars size = 3

但是,我的addCar方法是红色的,我如何修复它?

pharo有很多可用的文档:

以下是一些提示:

  • (我建议从“以身作则的法罗”开始)
  • 这个优秀的列表:(基于Pharo的旧版本,但一切都适用)

现在,关于你的问题,很难找到答案,这取决于很多事情,例如:容器是集合还是OrderedCollection<代码>汽车熊猫回答什么?Car的新实例或始终相同?

pharo有大量可用文档:

以下是一些提示:

  • (我建议从“以身作则的法罗”开始)
  • 这个优秀的列表:(基于Pharo的旧版本,但一切都适用)

现在,关于你的问题,很难找到答案,这取决于很多事情,例如:容器是集合还是OrderedCollection<代码>汽车熊猫回答什么?Car的新实例还是始终相同?

您的方法
addCar:
是红色的(请注意结尾的冒号),因为您尚未定义它。让我们把它写下来:

CarRental
必须有一个实例变量,该变量将保存其所有汽车。让我们把它命名为汽车

initialize
方法(实例端)中,我们需要执行以下操作

CarRental >> initialize
  super initialize.
  cars := OrderedCollection new.
现在,如果我们创建
CarRental
的新实例,它的
cars
ivar中将有一个空的
OrderedCollection

现在我们可以像这样添加
addCar:
方法

CarRental >> addCar: aCar
  cars add: aCar
CarRental >> totalCars
  ^cars size
最后,确保你有这样的东西

CarRental >> addCar: aCar
  cars add: aCar
CarRental >> totalCars
  ^cars size

检查您的代码并继续尝试

您的方法
addCar:
是红色的(注意末尾的冒号),因为您尚未定义它。让我们把它写下来:

CarRental
必须有一个实例变量,该变量将保存其所有汽车。让我们把它命名为汽车

initialize
方法(实例端)中,我们需要执行以下操作

CarRental >> initialize
  super initialize.
  cars := OrderedCollection new.
现在,如果我们创建
CarRental
的新实例,它的
cars
ivar中将有一个空的
OrderedCollection

现在我们可以像这样添加
addCar:
方法

CarRental >> addCar: aCar
  cars add: aCar
CarRental >> totalCars
  ^cars size
最后,确保你有这样的东西

CarRental >> addCar: aCar
  cars add: aCar
CarRental >> totalCars
  ^cars size

检查您的代码并继续尝试

你是说方法名“addCar:”在你引用的方法中是红色的吗?如果我没有弄错的话,这将表明在任何类中都没有这样的方法。因此,请同时发布该方法的定义。你是说你引用的方法中的方法名“addCar:”是红色的吗?如果我没有弄错的话,这将表明在任何类中都没有这样的方法。因此,请同时发布该方法的定义。非常感谢您的详细解释!这很有帮助!非常感谢您的详细解释!这很有帮助!感谢您提供的资源,我正在使用这些书籍/教程,但是当您查找纯oop时会感到困惑。感谢您提供的资源,我正在使用这些书籍/教程,但是当您查找纯oop时会感到困惑