Smalltalk (Pharo) методы - PullRequest
       16

Smalltalk (Pharo) методы

0 голосов
/ 07 января 2019

Я пытаюсь выучить Smalltalk (Pharo), но поскольку не так много документов, я бы хотел попросить о помощи. У меня есть два класса, CarRental и Car, и тестовый класс, CarRentalTest. Теперь служба поддержки проката имеет фиксированный номер автомобилей.

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

Тем не менее, мой метод addCar красный, как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Ваш метод addCar: красный (обратите внимание на двоеточие в конце), потому что вы его не определили. Давайте тогда запишем это:

Класс CarRental должен иметь переменную экземпляра, которая будет содержать все его автомобили. Допустим, мы называем это cars.

В методе initialize (сторона экземпляра) нам нужно сделать следующее

CarRental >> initialize
  super initialize.
  cars := OrderedCollection new.

Теперь, если мы создадим новый экземпляр CarRental, в его cars ivar будет пустой OrderedCollection.

Теперь мы можем добавить addCar: метод, подобный этому

CarRental >> addCar: aCar
  cars add: aCar

Наконец, убедитесь, что у вас есть что-то вроде этого

CarRental >> totalCars
  ^cars size

Просмотрите ваш код и продолжайте попытки!

0 голосов
/ 07 января 2019

для pharo доступно много документации:

вот некоторые подсказки:

Теперь по вашему вопросу сложно получить ответ, это зависит от многих вещей, например: контейнер является Set или OrderedCollection? Car panda что отвечает? новый экземпляр автомобиля или всегда такой же?

...