Eiffel 引介 Part V (2)

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

5.5 常量

使用如下语法形式声明常量:

constant_name : CLASS_NAME is value

比如:

pi : DOUBLE is 3.14159

base : INTEGER is 10

hello : STRING is “hello”

5.6 不需要 make routine 的对象创建过程

l 简单的类别不需要特定的创建程序(creation routine),也是很常见的情况。

l 比如,一个只用来提供标准的数学常量及函数的类别,并不需要作特定的初始化动作。

l 当然,我们总是可以为类别提供一个空的 make routine,而这在 Eiffel 中并不是必需的。我们可以完全忽略 creation 子句。

class BASIC_MATH

-- No creation clause

feature

pi : REAL is 3.14159

euler : REAL is 2.71828

sin( x : REAL ) : REAL is

....

end

该类别的使用者可能通过声明一个变量来创建 BASIC_MATH 实体,比如

bm : BASIC_MATH

然后执行命令

!!bm

这个命令让系统为一个 BASIC_MATH 型别的对象分配空间并将指向该对象的指针返回给变量 bm。

在这种情况下,根本就不需要执行 make。

5.7 自身引用

l 每一种面向对象语言都提供一种让对象引用其自身的方式。

l 在 Eiffel 中,用 Current 指代当前的对象。Current 最经常的用法是为另一个对象提供指向先前一个对象的引用。

class SOME_WINDOW_CLASS

sub : ANOTHER_WINDOW_CLASS

...

!!sub.make( Current )

...

end

class ANOTHER_WINDOW_CLASS

parent : SOME_WINDOW_CLASS

...

make( p : SOME_WINDOW_CLASS ) is

do

parent := p

end

(全文完)

[译注参考]:

[OOSC2e] Bertrand Meyer, Object-Oriented Software Construction 2nd Edtion. 1997

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