Eiffel 引介 Part V (2)

    技术2022-05-11  246

    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


    最新回复(0)