sas scl程序设计使用技巧-面向对象的程序设计

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

sas scl程序设计使用技巧-面向对象的程序设计

(注意,SAS8版以后才支持OOP)

SCL是SAS的程序控制语言,

同样具有高级语言的一些特性,支持面向对像的程序设计,下面介绍一下怎么用SAS生成类,对象,以及对象的调用

1、先新建一SCL文件,输入如下结构的代码

class 类名;

/*属性定义*/

public ...;

private ...;

/*方法定义*/

方法名:public method 参数...;

....

endmethod;

endclass

这样,一个类的框架基本完成,如另存为c_test文件,然后编译该文件,最后注意要选择菜单栏的【另存为类】,这样就生成了c_test.class文件

SAS的类也支持类继承、方法重载等技术

比如可以在同一个类里写同一个方法,只要参数不同就行,无需特殊标注

类继承使用下面语法

class 子类名 extends 父类名;

...

endlcass;

这样就可以使用父类的所有非私有的方法和属性

如想重载父类的方法,可使用如下语法

父类方法:public method 参数 /(state='o');

...

_super(..);

endmethod;

注意,方法后加上了(state='o')关键字,如想在子类的重载的方法中调用父类的同名方法,使用_super()关键字

要初始话类的属性,可使用一下两种方法

1。直接在属性上赋值,语法如下,类如

Public List ShowInfoList /(Initialvalue={1,2,3,4})

其中使用了Initialvalue关键字

2。应用类的方法

类生成对像前会调用构造函数,该构造函数的名称应更类名相同,如

C_test:METHOD ;

..

endmethod;

注意,没有返回值

故可已在该方法中初始化属性值,注意,如果父类中已经存在该构造函数,需要重载构造函数

要在对象结束是释放一些全局资源 ,可重载类的_term()方法,相当于析构函数

_term:method ..;

/*释放资源*/

。。。

endmethod;

好了,关于类的编写就这样了,详情请看SAS的帮助

2.类的调用

类不能直接调用,首先要生成一个对象,使用方法很简单,如

dcl c_test obj1;

obj1=_new_ c_test();

...

obj1._term();

注意,SAS有一特殊类型object,任何对象都可以赋值给他,如

dcl object obj1;

obj1=_new_ c_test();

...

obj1._term();

由于SAS的SCL是一种弱类型语言,所以没有那么多限制,赫赫,你想干嘛就干嘛,如果SAS不认同你的想法时,会在运行时报错的

OK,关于SAS的OOP就介绍到此,如有什么不对之处,还请多多海涵

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航