📜  Rexx-面向对象(1)

📅  最后修改于: 2023-12-03 15:19:49.190000             🧑  作者: Mango

Rexx-面向对象

Rexx是一门通用的解释型编程语言,它被设计为人们能够更轻松地编写和维护程序。Rexx采用了面向对象编程(OOP)的概念。本文将介绍Rexx的面向对象编程。

类和对象

在Rexx中,类是一种用户定义的数据类型。类是一个结构,其中包含属性和方法,程序员可以在类中定义这些属性和方法。对象是类的一个实例。对象包含了该类中定义的所有属性和方法。程序员可以在程序中创建对象,访问对象的属性和方法来执行任务。

定义类

要定义一个类,我们需要使用**::class**关键字并给类设置一个名称。定义类的结构可以像下面这样:

 myClass::class
    -- 属性定义
 fields:

    -- 方法定义
 methods:
定义属性

定义属性很简单,只需在类中使用关键字Attribute和属性名称来定义即可。例如,定义一个名称为myAttribute的属性可以这样写:

myClass::class
 fields:
      myAttribute Attribute
 methods:
定义方法

定义方法也很简单,只需在类中使用关键字Method和方法名称来定义即可。例如,定义一个名称为myMethod,没有参数的方法可以这样写:

myClass::class
 fields:
 methods:
      myMethod Method
      expose
      -- 方法实现
      return
创建对象

要创建一个类的对象,需要使用new方法,并将变量分配给新对象。例如,创建一个名为object1的新对象可以这样写:

 object1 = myClass~new
访问属性和方法

创建对象后,可以通过对象访问属性和方法。例如,访问myAttribute属性可以这样写:

 object1~myAttribute = "Hello World"

要调用myMethod方法,可以这样写:

 object1~myMethod
示例

下面是一个完整的Rexx程序,该程序创建一个类MyClass,该类具有属性myAttribute和方法myMethod。它创建两个MyClass对象,并访问它们的属性和方法。

/* 定义类MyClass */
MyClass::class
 fields:
      myAttribute Attribute
 methods:
      myMethod Method
      expose

      say "Executing MyMethod"
      return

/* 创建两个MyClass对象 */
object1 = MyClass~new
object2 = MyClass~new

/* 访问属性和方法 */
object1~myAttribute = "Hello World"
object1~myMethod

object2~myAttribute = "Goodbye"

输出:

Executing MyMethod