在类中初始化一个Rectangle

时间:2014-06-05 16:38:02

标签: smalltalk pharo squeak gnu-smalltalk

我有一个名为Map的班级。我想从Rectangle内的origin: 0 @ 0 corners: 50 @ 40Map初始化一个矩形。所以,当我在工作区中尝试

myMap := Map new. 

它应该归还给我(0 @ 0) corner: (50 @ 40)

我试过了:

initialize Rectangle origin: 0@0 corner: 100@100.

但它不起作用?任何想法?

1 个答案:

答案 0 :(得分:1)

看,如果你想初始化实例变量,那么你必须先定义它:

Object subclass: #Map
  instanceVariableNames: 'rectangle'
  ...

然后你初始化它:

initialize
  rectangle := Rectangle origin: 0@0  corner: 100@100.

现在,如果您想要继承Rectangle,并希望默认情况下使用0@0 corner: 100@100初始化地图,请执行以下操作:

initialize
  self setOrigin: 0@0 corner: 100@100