OTCL,面向对象的脚本一

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"

继承

先放着

猜你喜欢

转载自www.cnblogs.com/sunminming/p/9184819.html