我正在为VBA中的OOP(面向对象编程)构建一些材料。 任何人都可以列出VBA中可用的OOP概念吗?
例如,从我的阅读中我发现:
答案 0 :(得分:5)
VBA支持一些OO概念,而不支持其他概念。
使用VBA,您可以创建自己的类,并且可以从这些类创建对象。但是,VBA不支持继承,并且不支持在OO语言(如C ++或.NET)中使用的术语的经典含义中的“多态”。
VBA类确实支持封装和抽象。
答案 1 :(得分:4)
以下是我在VBA中使用OOP概念时所做的一些观察:
Class_Initialize
方法,该方法在实例化对象时调用,但不能重载以处理参数。如果你想在没有设置某些属性的情况下强迫你的课程“不能完全正常运作”,你就必须按照自己的方式这样做。VB6 / VBA范例将类设想为封装对象功能和属性的一种方法。从这个意义上说,VB6 / VBA的对象就像任何其他基本的OOP环境一样存在,并且应该在适当的时候鼓励它们的使用和设计。
但是,缺少几个关键的OOP功能会导致VB6 / VBA无法完全实现完整的OOP设计模式。
答案 2 :(得分:0)
VBA的一个特殊缺点是封装了对象数组。
您可以拥有对象数组,但不能超过一个级别。 存在变通方法,例如使用Variant类型但是您失去了类型安全性。 这使得使用分层对象结构变得很麻烦,尽管最终可能会出现复杂的代码。