我刚刚使用系统浏览器在pharo中创建了自己的包(MyPackage)和类(MyClass).这是它的外观.
Object subclass: #MyClass
instanceVariableNames: ''
classVariableNames: ''
category: 'MyPackage'
Run Code Online (Sandbox Code Playgroud)
我理解术语子类和类别,而不是获得其他两个术语(instanceVariableNames,classVariableNames)的含义.
我的印象是这个问题已经被问到并得到了解答,但是我找不到它,可能是在邮件列表上.
实例变量只是实例个体的变量,因此您定义的类的每个实例都将拥有自己的变量集.
类侧的实例变量.您可以定义当切换到类侧时,您将获得如下代码:
MyClass class
instanceVariableNames: ''
Run Code Online (Sandbox Code Playgroud)
在Pharo(和一般的Smalltalks)中,每个类都是元类的一个实例.变量可以通过类方法访问,并且由于只有一个实例表示类对象,因此该实例只有一组这些变量.
类变量是classVariableNames: ''实例端模板定义的变量.我喜欢称它们为"池变量",但实际上如果定义了这样的变量,层次结构中的所有实例都可以访问它.假设你有一个类A,它是子类B.如果你有一个"类变量" A,你可以从两个实例访问相同的变量A和B.这就像拥有层次结构的全局变量一样.我建议不要使用这种类型的变量.
| 归档时间: |
|
| 查看次数: |
1974 次 |
| 最近记录: |