Otcl
简介
面向对象的脚本语言
类变量和类方法
Otcl的基类称为Object(类的名字,不是面向对象中的“对象”),所以的Otcl类都是从Object派送来的。
直接贴代码,命名为BOX.tcl
#定义“BOX”类
Class BOX
#类的构造函数用init表示;instproc表示这是一个类的方法
#“eval $self next”是显式地调用父类同名(init)方法,这是与C++的一点不同
#同时定义了一个类成员“lenght”,默认为5
BOX instproc init {} {
eval $self next
$self set lenght 5
}
#与C++的第二点不同,每个方法都需要重新声明类成员
#“$self instvar lenght ”既用来重新声明lenght变量
BOX instproc incr_lenght {} {
$self instvar lenght
incr lenght
puts "$lenght"
}
#类的析构函数用destroy表示,也需要显式地调用父类destroy方法
BOX instproc destroy {} {
puts "GoodBye!"
$self next
}
otclsh简单脚本测试
启动Otclsh:
root@: otclsh
%
#加载上面写的源代码
%source BOX.tcl
#创建一个实例
%BOX box1
box
#查看BOX类的实例,放回上一步创建的box1
%BOX info instances
box1
#查看box1的变量
%box1 info vars
lenght
#查看数值
%box1 set lenght
5
#调用自定义的incr_lenght函数
%box1 incr_lenght
6
#销毁box1对象
% box1 destroy
GoodBye!
#再调用函数就显示失败
% box1 incr_lenght
invalid command name "box1"
继承
先放着