我正在VBA中为OOP(面向对象编程)构建一些材料。
有人可以列出VBA中可用的OOP概念吗?

例如,通过阅读,我发现:


继承在VBA中不可用。
存在封装概念,因为您可以使用访问修饰符“ private”并构建公共属性。

最佳答案

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


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


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

但是,缺少几个关键的OOP功能会导致VB6 / VBA无法完全实现完整的OOP设计模式。

07-25 22:26
查看更多