类和方法
类和方法通常在 Smalltalk IDE 中定义。
类
类定义在浏览器中看起来像这样:
XMLTokenizer subclass: #XMLParser
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'XML-Parser'
这实际上是浏览器将为你在系统中创建新类的消息。 (在这种情况下,它是 #subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:
,但还有其他人也会创建新类)。
第一行显示了你正在子类化的类(在本例中为 XMLTokenizer)以及新子类将具有的名称(#XMLParser)。
接下来的三行用于定义类及其实例将具有的变量。
方法
方法在浏览器中如下所示:
aKeywordMethodWith: firstArgument and: secondArgument
"Do something with an argument and return the result."
^firstArgument doSomethingWith: secondArgument
^
(插入符号)是返回运算符。
** anInteger
"Raise me to anInteger"
| temp1 temp2 |
temp1 := 1.
temp2 := 1.
1 to: anInteger do: [ :i | temp1 := temp1 * self + temp2 - i ].
^temp1
这不是进行求幂的正确方法,但它显示了二进制消息定义(它们被定义为任何其他消息)和一些方法临时变量 (或方法 temporaries, temp1 和 temp2 )加上一个块参数( i )。