下载MetaTrader 5
MQL5参考语言基础面向对象的程序设计 

面向对象的程序设计

面向对象的程序设计(OOP)主要是针对数据或者与数据密不可分行文的程序设计。数据和行为合起来称为类,对象就是类的实例。

面向对象处理组件:

OOP把计算当成行为建模。模型项是抽象计算代表的对象。假设我们想编写一个著名的游戏"Tetris"。我们必须学习如何用四个正方形随机组成的图形来建模。我们还需要调节图形下降的速度,定义图形旋转变换的操作。屏幕上图形移动受文档对象模型边框限制,这也需要建模。此外,消除填满的行,然后获得相应的得分。

因此,这个简单易懂的游戏需要创建几个模型-图形模型,文档对象模型,移动模型等等。所有这些模型都是抽象的,通过电脑运算表示。描述这些模型,抽象数据类型ADT(或者复杂数据类型)概念被使用。严格说来,DOM中“图形”运动模型并不是数据类型,但是它是使用“DOM”数据类型限制条件,“图形”数据类型全部操作。

对象是变量。面向对象的程序设计允许您轻松创建使用ADT。面向对象程序设计使用继承机制。其优势是允许从用户已经定义的数据类型中获得衍生类型。

例如,创建俄罗斯方块图形,首先创建一个基本类图形很方便;代表所有可能图形的其他七个类可以从基本图形衍生出来。图形行为在基本类中就确定了,而执行每个独立图形的行为在衍生类中定义。

在OOP中对象对其行为负责。ADT开发人员包括描述相关对象期望的行为代码。实际上,对象对其行为负责,显著简化了对象用户程序设计的任务。

如果我们想要在屏幕上画一个图,我们需要知道中心点在哪里,以及如何画它们。如果独立的图形知道如何画自己,当使用这个图形时程序员可以发送“draw”消息。

MQL5语言类似于C++,也有ADT的封装机制。一方面,封装与内部特殊类型结合,另一方面,也与影响这类型对象的可接入外部函数连结。执行细节对于使用这个类型的程序很难达到。

OOP概念有一系列相关概念,包括以下内容:

  • 模拟真实世界操作
  • 用户定义数据类型的有效性
  • 隐藏执行细节
  • 通过继承机制重新使用代码的可能性
  • 执行期解释调用函数

 一些概念非常不明确,有一些很抽象,另一些又很大众化。


更新: 2015.12.03