Список доступных понятий ООП

Я создаю некоторый материал для ООП (объектно-ориентированное программирование) в VBA. Кто-либо может перечислить меня понятия ООП, которые доступны в VBA?

Например, от моего чтения я обнаружил что:

  1. Наследование не доступно в VBA.
  2. Понятие инкапсуляции там, поскольку можно использовать "частный" модификатор доступа и создать общественную собственность.
7
задан Community 9 July 2018 в 19:34
поделиться

2 ответа

Вот некоторые наблюдения, которые я сделал во время работы с концепциями ООП в VBA:

  • Вы не можете перегружать методы в VBA. Однако у вас есть необязательные параметры, к лучшему или к худшему.
  • У вас есть один метод без параметров Class_Initialize , который вызывается при создании экземпляра объекта, но его нельзя перегружать для обработки параметров. Если вы хотите, чтобы ваш класс не был «полностью функциональным» без установки определенных свойств, вам придется написать свой собственный способ сделать это.
  • Среда редактирования VB6 и VBA заставляет вас создавать «файлы классов» и хранить каждый класс в отдельном файле, который отличается от модулей.
  • Классы и модули могут иметь как публичные, так и частные поля. Открытое поле в модуле - это, по сути, глобальная переменная.
  • Модули функционально аналогичны статическим классам в C #. Открытый код можно вызывать из модулей в любом месте вашего приложения.

Парадигма VB6 / VBA рассматривает классы как способ инкапсулировать функциональные возможности и свойства объекта. В этом смысле объекты VB6 / VBA существуют так же, как и любая другая базовая среда ООП, и их использование и дизайн следует поощрять там, где это необходимо.

Однако отсутствие нескольких ключевых функций ООП приводит к тому, что VB6 / VBA не может полностью реализовать полный шаблон проектирования ООП.

4
ответ дан 7 December 2019 в 03:11
поделиться

VBA поддерживает одни концепции объектно-ориентированного программирования, но не другие.

С VBA вы можете создавать свои собственные классы, и вы можете создавать объекты из этих классов. Однако VBA НЕ поддерживает наследование и не поддерживает «полиморфизм» в классическом значении этого термина, который используется в объектно-ориентированных языках, таких как C ++ или .NET.

Классы VBA поддерживают инкапсуляцию и абстракцию.

5
ответ дан 7 December 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: