鑑於類打印方法:「AStack」創建,同時清空棧的內容
Object subclass: #AStack
instanceVariableNames: 'elements'
...
它包含保存它是一個OrderedCollection對象「元素對象」
initialize
super initialize.
elements := OrderedCollection new
它的成員類推動和流行,分別爲:
push: anObject
self elements addFirst: anObject
pop
^self elements removeFirst
我想寫一個打印方法,使用timesRe泥炭打印堆棧的內容以及同時清空它。它調用每個'元素'的子類打印方法(print^self name)並使用'Transcript'在屏幕上輸出它。
在另一邊我稱之爲 'SomeRandomObject' 一類是誰的打印方法是:
print
Transcript show:self getName; cr
工作區碼:
| o1 o2 stk |
o1 := SomeRandomObject new.
o1 name: 'object1'.
o2 := SomeRandomObject new.
o2 name: 'object2'.
stk := AStack new.
stk push: o1.
stk push: o2.
stk print "prints and emptys stack"
在運行出現錯誤:
錯誤:AStack的實例不可索引
如何修復我的代碼,使打印方法在彈出堆棧時顯示o1和o2名稱?