Sobes.tech
Junior

Kas ir inkapsulācija?

sobes.tech AI

Atbilde no AI

Kapsulēšana ir mehānisms, kas ļauj slēpt objekta iekšējo stāvokli un aizsargāt to no ārējām iejaukšanās. Tā apvieno datus (laukus) un metodes, kas ar šiem datiem strādā, vienā blokā — klasē.

C# valodā kapsulēšana tiek panākta, izmantojot piekļuves modifikatorus (public, private, protected, internal, protected internal, private protected) un īpašības (Properties).

Piemērs ar īpašību izmantošanu:

public class Persona
{
    private int _vecums; // Privāts lauks

    public int Vecums // Publiska īpašība, kas nodrošina kontrolētu piekļuvi laukum _vecums
    {
        get { return _vecums; }
        set
        {
            if (value >= 0) // Datu validācija
            {
                _vecums = value;
            }
            else
            {
                // Var izsaukt izņēmumu vai veikt citu darbību
                Console.WriteLine("Vecums nevar būt negatīvs.");
            }
        }
    }

    public string Vards { get; set; } // Automātiska īpašība

    public void RādītInfo()
    {
        Console.WriteLine($"Vārds: {Vards}, Vecums: {Vecums}");
    }
}

Kapsulēšanas priekšrocības:

  • Iekšējās detaļas slēpšana: Objekta iekšējās detaļas ir paslēptas no ārējā koda.
  • Piekļuves kontrole: Piekļuve datiem tiek veikta caur metodēm vai īpašībām, kas ļauj veikt validāciju un biznesa loģiku.
  • Elastība: Izmaiņas klasē iekšējā realizācijā neietekmē ārējo kodu, kas izmanto tās saskarni.
  • Uzturēšanas uzlabošana: Kods kļūst strukturētāks un saprotamāks.