Sobes.tech
Junior

Какво е инкапсулация?

sobes.tech AI

Отговор от AI

Капсулирането е механизъм, който позволява скриването на вътрешното състояние на обекта и защитата му от външна намеса. То обединява данни (полета) и методи, които работят с тези данни, в един блок — класа.

В C# капсулирането се постига чрез модификатори за достъп (public, private, protected, internal, protected internal, private protected) и свойства (Properties).

Пример с използване на свойства:

public class Лице
{
    private int _възраст; // Частно поле

    public int Възраст // Общодостъпно свойство, което предоставя контролирана достъп до полето _възраст
    {
        get { return _възраст; }
        set
        {
            if (value >= 0) // Валидиране на данните
            {
                _възраст = value;
            }
            else
            {
                // Може да се изхвърли изключение или да се изпълни друго действие
                Console.WriteLine("Възрастта не може да бъде отрицателна.");
            }
        }
    }

    public string Име { get; set; } // Автоматично реализирано свойство

    public void ПокажиИнформация()
    {
        Console.WriteLine($"Име: {Име}, Възраст: {Възраст}");
    }
}

Предимства на капсулирането:

  • Скриване на реализацията: Вътрешните детайли на обекта са скрити от външния код.
  • Контрол на достъпа: Достъпът до данните се осъществява чрез методи или свойства, което позволява валидиране и бизнес логика.
  • Гъвкавост: Промените във вътрешната реализация на класа не влияят на външния код, който използва неговия интерфейс.
  • Подобряване на поддръжката: Кодът става по-структуриран и разбираем.