形状对象示例

以下代码为 Circle 对象创建构造函数。构造函数接受一个参数(圆半径)作为输入,并将此值分配给内部属性。对象构造函数还定义了一个计算圆面积的方法。

Circle(radius):={
    .radius=radius;
    .area=Circle_area;
}
Circle_area(none):=PI*.radius^2

您可以使用此构造函数创建新对象,如下所示:

var shape=new Circle(5);

定义对象后,您可以计算其面积,如下所示

shape.area()

现在,通过创建 Square 和 Triangle 对象构造函数来扩展示例。与 Circle 对象一样,每个新对象都有一个名为 area 的方法来计算形状的面积。

Square(height):={
    .height=height;
    .area=Square_area;
}
Square_area(none):=.height^2
Triangle(height,width):={
    .height=height;
    .width=width;
    .area=Triangle_area;
}
Triangle_area(none):=1/2*.height*.width

现在您可以使用如下代码创建不同形状的列表:

var shapes=[
    new Circle(5),
    new Circle(6),
    new Square(4),
    new Triangle(3,4)
];

最后,通过让每个对象调用自己的 area 方法来计算所有形状的总面积:

var total=sum(
    each(obj.area(),obj,shapes)
);

由于每个对象都有自己的 area 方法,您无需担心将每个对象与相应的 area 函数匹配。相反,每个对象都知道如何计算自己的面积。

对象让您可以将作用于数据的函数与数据本身组合在一起。这可以大大简化某些应用程序的构建和维护。

参见关于方法