Властивість (програмування)
У цій статті не вистачає посилань на джерела інформації.
Властивість - спосіб доступу до внутрішнього стану об'єкта, що імітує змінну деякого типу. Звернення до властивості об'єкта виглядає так само, як і звернення до структурному полю (в структурному програмуванні), але, в дійсності, реалізовано через виклик функції. При спробі задати значення даного властивості викликається один метод, а при спробі отримати значення даного властивості - інший.
При застосуванні властивостей
- можна задати значення за замовчуванням, яке буде зберігатися в цій якості (або вказати, що ніякого значення за замовчуванням не передбачається);
- можна вказати, що це властивість тільки для читання.
Як правило, властивість пов'язана з деяким внутрішнім полем об'єкта. Але властивості взагалі може не бути порівняна жодна змінна об'єкта, хоча користувач даного об'єкта має справу з ним так, як якщо б це було справжнє поле.
Властивості підвищують гнучкість і безпеку програмування, оскільки, будучи частиною (відкритого) інтерфейсу, дозволяють змінювати внутрішню реалізацію об'єкта без зміни його властивостей. Властивості значно полегшують модифікацію програми в тих випадках, коли клас спочатку був реалізований з порушенням інкапсуляції. а в подальшому потрібно змінити спосіб доступу до поля. При відсутності в мові механізму властивостей треба було б шукати і заміняти звернення до полів на методи доступу.
У багатьох мовах програмування властивості реалізуються у вигляді пари методів. метод, який одержує поточне значення властивості, називається акцессор (accessor); метод, що задає нове значення властивості, - мутатор (mutator). [Джерело не вказано 384 дні] У мовах програмування, що не підтримують властивості, наприклад, C ++ і Java. пара з акцессора і мутаторів є загальноприйнятим сурогатом для їх заміни.
Прийнято називати методи властивостей ім'ям властивості з приставками get і set. наприклад, для властивості Xyzzy - get_Xyzzy і set_Xyzzy (традиційний стиль Сі) або GetXyzzy і SetXyzzy (стиль CamelCase). У зв'язку з цією схемою найменування за методами властивостей закріпилися жаргонні назви getter і setter.
Властивості в C #
Властивості в C # - поля з логічним блоком, в якому є ключові слова get і set.
Приклад класу з властивістю:
Властивості в VB.NET
Приклад реалізації в VB.NET. Якщо потрібно реалізувати властивість тільки для читання або тільки для запису. застосовуються модифікатори ReadOnly і WriteOnly. Властивість може бути параметризованим. Також може бути властивістю за замовчуванням, для цього необхідно додати модифікатор Default
Властивості в Delphi
Для опису властивості в Delphi служить слово property.
Приклад класу з властивістю: