В код внесено небольшое изменение, означающее, что он не будет работать.
В Smalltalk методы могут быть прикреплены в одном из двух мест: они могут применяться к экземплярам. класса, который в данном случае будет объектом учетной записи (например, тот, который вы получите при запуске Account new
), или они могут быть class методами, что означает, что они применяются к фактическому классуСам по себе Account
.
Account init
является методом экземпляра.Он устанавливает некоторые разумные значения по умолчанию для экземпляра класса Account
, который вы создали.Вы написали это правильно, и он ведет себя так, как и должен.
С другой стороны, вы изменили Account new
с метода класса на метод экземпляра.Когда это метод класса, он заменяет Account
существующий new
метод на тот, который вызывает init
.Когда это метод экземпляра, он на самом деле ничего не делает, так как вы не собираетесь вызывать new
для экземпляра.
Исправление достаточно простое: скажите GNU Smalltalk, что new
Метод - это метод класса.Чтобы сделать это, вы просто помещаете метод в Account class >> new
, а не в класс Account
.