Object subclass: #Square.
Square instanceVariableNames: 'side'.
Square class extend [
new: square [
| r |
<category: 'instance creation'>
r := super new.
r init: square.
^r
]
]
Square extend [
init: square [
<category: 'initialization'>
side := square sqrt.
]
perimeter [
| p |
<category: 'perimeter calculation'>
p := 4 * side.
^p
]
]
| s |
s := Square new: 4.
(s perimeter) printNl
T2JqZWN0IHN1YmNsYXNzOiAjU3F1YXJlLgpTcXVhcmUgaW5zdGFuY2VWYXJpYWJsZU5hbWVzOiAnc2lkZScuClNxdWFyZSBjbGFzcyBleHRlbmQgWwogICAgbmV3OiBzcXVhcmUgWwogICAgICAgIHwgciB8CiAgICAgICAgPGNhdGVnb3J5OiAnaW5zdGFuY2UgY3JlYXRpb24nPgogICAgICAgIHIgOj0gc3VwZXIgbmV3LgogICAgICAgIHIgaW5pdDogc3F1YXJlLgogICAgICAgIF5yCiAgICBdCl0KU3F1YXJlIGV4dGVuZCBbCiAgICBpbml0OiBzcXVhcmUgWwogICAgICAgIDxjYXRlZ29yeTogJ2luaXRpYWxpemF0aW9uJz4KICAgICAgICBzaWRlIDo9IHNxdWFyZSBzcXJ0LgogICAgXQogICAgcGVyaW1ldGVyIFsKICAgICAgICB8IHAgfAogICAgICAgIDxjYXRlZ29yeTogJ3BlcmltZXRlciBjYWxjdWxhdGlvbic+CiAgICAgICAgcCA6PSA0ICogc2lkZS4KICAgICAgICBecAogICAgXQpdCgp8IHMgfApzIDo9IFNxdWFyZSBuZXc6IDQuCihzIHBlcmltZXRlcikgcHJpbnRObA==