Sobes.tech
Junior

Šta je enkapsulacija?

sobes.tech АИ

Одговор од АИ

Капсулација је механизам који омогућава скривање унутрашњег стања објекта и заштиту од спољашњих утицаја. Она спаја податке (поља) и методе који раде са тим подацима у један блок — класу.

У C#-у, капсулација се постиже помоћу модификатора приступа (public, private, protected, internal, protected internal, private protected) и својстава (Properties).

Пример са коришћењем својстава:

public class Osoba
{
    private int _starost; // Приватно поље

    public int Starost // Јавно својство које пружа контролисани приступ пољу _starost
    {
        get { return _starost; }
        set
        {
            if (value >= 0) // Валидација података
            {
                _starost = value;
            }
            else
            {
                // Може се изазвати изузетак или извршити друга акција
                Console.WriteLine("Возраст не може бити негативан.");
            }
        }
    }

    public string Ime { get; set; } // Аутоматски реализовано својство

    public void PrikaziInfo()
    {
        Console.WriteLine($"Име: {Ime}, Старост: {Starost}");
    }
}

Предности капсулације:

  • Скривање имплементације: Унутрашњи детаљи објекта су скривени од спољашњег кода.
  • Контрола приступа: Приступ подацима се врши преко метода или својстава, што омогућава валидирање и пословну логику.
  • Флексибилност: Промене у унутрашњој имплементацији класе не утичу на спољашњи код који користи њен интерфејс.
  • Побољшање одржавања: Код постаје структуриранији и разумљивији.