我是 Smalltalk(VisualAge 环境)的新手,我尝试创建一个计算她的实例数量的类。不幸的是,当我覆盖“新”方法时,有些东西不起作用。这是我的课程代码:
Object subclass: #TestClassB
instanceVariableNames: 'niceVariable '
classVariableNames: 'InstanceCounter '
poolDictionaries: ''!
!TestClassB class publicMethods !
initWithNiceParameter: parameter
|testClassBInstance|
testClassBInstance:= self new.
^(testClassBInstance niceVariable: parameter)!
new
super new.
InstanceCounter isNil
ifTrue: [InstanceCounter := 0]
ifFalse: [InstanceCounter := InstanceCounter + 1].
^self
! !
!TestClassB publicMethods !
niceVariable: anObject
"Save the value of niceVariable."
niceVariable := anObject.
! !
我想使用“initWithNiceParameter”消息创建新对象:
TestClassB initWithNiceParameter: 'my super string'
但我得到的只是错误:
TestClassB does not understand niceVariable:
这是因为“TestClassB”也是一个对象,并且似乎没有“niceVariable”设置器。
当“新”方法被覆盖时,您知道如何创建对象吗?