设计思想与原理

轻语言支持使用面向对象的思想编写程序,面向对象的程序设计思想主要包括:抽象概括,继承重写,自定义封装。

抽象概括

抽象是一种归纳方式,概括是一种总结过程。面向对象的基本思想是从多个不同物体或对象中统一抽取其相同特征的属性进行归纳,总结成一个独立的抽象形容词(类)。

例如:形状、水果、动物、植物等;这些词语都是对一类物体总结归纳后的,抽象的形容词(类)。

我们可以说一个形状,但这个形状具体是什么形状?是三角形?长方形?还是矩形?

我们也可以说一个水果,但这个水果具体表示苹果、还是香蕉?还是葡萄?

继承重写

归纳总结是面向对象的基本思想,那么继承重写就是核心思想。

上文中我们说到:一个形状;一个水果,但仅仅只通过水果一词并不能明确表示这个水果具体是那种水果。

水果一词实在过于抽象。

水果一词可以表示任何水果。

但如果假设现在有一个苹果,一个实实在在的苹果(对象)。

而这个苹果是水果吗?

是水果。

苹果继承了水果的特性。

但苹果又有自己特别的属性,例如:有青苹果、甘肃苹果、红苹果等等

自定义封装

苹果继承了水果的特性,但又拥有与其它水果不同的自定义属性。

而这些属性通过封装的方式,赋予了苹果与其它水果的与众不同。

而通过什么封装方式去表示苹果的与众不同呢?

用:属性、方法(函数)、事件

那么问题来了?一颗苹果怎么封装?

苹果也有生命周期和意义。

例如:

事件:

  • 苹果被培育成熟

  • 苹果被采摘

  • 苹果被人类食用

函数:

  • 摆上货架()

  • 获取产地信息()

属性:

  • 颜色

  • 重量

  • 价格


基本原理

代码示例(轻语言2.0):

定义 水果 为 类型
    ' 定义水果的类型
    变量 员_类型 为 文本型

    ' 定义水果口味,例如:甜、酸
    变量 员_口味 为 文本型

    ' 构造函数、创建水果时传入水果名称,例如:苹果
    函数 水果(参_类型 为 文本型)
        员_类型 = 参_类型
    结束 函数

    函数 取类型() 为 文本型
        返回 员_类型
    结束 函数

    ' 定义水果的口味类型
    属性 口味 为 文本型
        写
            员_口味 = 值
        读
            返回 员_口味
    结束 属性

结束 定义

' 苹果继承了水果所有特性
定义 苹果 继承 水果

    变量 员_产地 为 文本型

    ' 自定义苹果的产地属性
    属性 产地 为 文本型
        写
            员_产地 = 值
        读
            返回 员_产地
    结束 属性

结束 定义

' 葡萄继承了水果所有特性
定义 葡萄 继承 水果

    ' 重写葡萄的口味类型
    属性 口味 为 文本型
        读
            返回 "酸"
    结束 属性

结束 定义