class cell {
var contents: Integer := 0;
method get(): Integer { return self.contents; }
method set(n: Integer) { self.contents := n; }
}
self 代表對象自身。對象內部為指向屬性集的指針,賦值/傳參傳遞指針,實現共享。
var myCell: InstanceTypeOf(cell) := new cell;
new cell:分配屬性存儲,初始化,綁定方法代碼,返回指針。InstanceTypeOf(cell):對象類型,區別於 class,為後續子類型多態鋪路。subclass reCell of cell {
var backup: Integer := 0;
override set(n: Integer) {
self.backup := self.contents;
super.set(n);
}
method restore() { self.contents := self.backup; }
}
super 調用父類版本。| 語言類型 | Method Suite 構建時機 | 解析複雜度 |
|---|---|---|
| 靜態類型 | 編譯期,扁平化合併 | O(1) 直接索引 |
| 動態類型 | 運行期,動態生成樹/圖 | O(深度) 搜索 |