类和方法

类和方法通常在 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, temp1temp2 )加上一个块参数( i )。