Проблемы с классами (супер новый) - PullRequest
2 голосов
/ 07 апреля 2010

У меня проблемы с тем, чтобы понять, что происходит в следующем упражнении, я изучаю Smalltalk, поэтому я новичок.

Класс A >> новый ^ супер новая инициализация.

A >> инициализировать а: = 0.

Класс B >> новый: aParameter | Пример | экземпляр: = супер новый. экземпляр b: экземпляр a + aParameter. ^ Экземпляр

B >> инициализировать б: = 0.

Проблема говорит о том, что происходит при выполнении следующего кода:

B новый: 10.

Но я не могу понять, почему переменная экземпляра не принадлежит классу A.

Спасибо

1 Ответ

3 голосов
/ 08 апреля 2010

Я обнаружил проблему, связанную с отсутствием суперинициализации, когда был выполнен код инициализатора «instance: = super new».был инициализатором класса B, поэтому экземпляр A var не был инициализирован, следующий код решает проблему:

B >> initialize

super initialize.

b: = 0.

...