可用OOP概念列表

amr*_*ama 7 oop excel vba excel-vba

我正在为VBA中的OOP(面向对象编程)构建一些材料.任何人都可以列出VBA中提供的OOP概念吗?

例如,从我的阅读中我发现:

  1. VBA中不提供继承.
  2. 封装概念就在那里,因为您可以使用访问修饰符"private"并构建公共属性.

pba*_*nfi 5

VBA支持一些OO概念,而不支持其他概念.

使用VBA,您可以创建自己的类,并且可以从这些类创建对象.但是,VBA不支持继承,并且不支持在OO语言(如C++或.NET)中使用的术语的经典含义中的"多态".

VBA类确实支持封装和抽象.


Ben*_*ack 4

以下是我在使用 VBA 中的 OOP 概念时所做的一些观察:

  • 不能重载 VBA 中的方法。但是,您确实可以使用可选参数,无论好坏。
  • 您有一个Class_Initialize在实例化对象时调用的无参数方法,但不能重载该方法来处理参数。如果您想在没有设置某些属性的情况下强制您的类不“功能齐全”,则必须编写自己的方法来执行此操作。
  • VB6 和 VBA 编辑环境强制您构建“类文件”并将每个类保存在单独的文件中,这与模块不同。
  • 类和模块都可以有公共和私有字段。模块中的公共字段本质上是一个全局变量。
  • 模块在功能上类似于 C# 中的静态类。可以从应用程序中任何位置的模块调用公共代码。

VB6/VBA 范式将类设想为封装对象的功能和属性的一种方式。从这个意义上说,VB6/VBA 的对象就像任何其他基本 OOP 环境一样存在,并且应在适当的情况下鼓励它们的使用和设计。

然而,由于缺少几个关键的 OOP 功能,导致 VB6/VBA 无法彻底实现完整的 OOP 设计模式。