Sobes.tech
Junior

Kas yra inkapsuliacija?

sobes.tech AI

Atsakymas iš AI

Kapsuliacija yra mechanizmas, leidžiantis paslėpti objekto vidinę būseną ir apsaugoti ją nuo išorinių įsikišimų. Ji sujungia duomenis (laukus) ir metodus, kurie dirba su šiais duomenimis, į vieną bloką — klasę.

C# kalboje kapsuliacija pasiekiama naudojant prieigos modifikatorius (public, private, protected, internal, protected internal, private protected) ir savybes (Properties).

Pavyzdys su savybių naudojimu:

public class Asmuo
{
    private int _amžius; // Privatus laukas

    public int Amžius // Vieša savybė, suteikianti kontrolinę prieigą prie lauko _amžius
    {
        get { return _amžius; }
        set
        {
            if (value >= 0) // Duomenų validacija
            {
                _amžius = value;
            }
            else
            {
                // Gali būti išmesta išimtis arba atliekama kita veiksmas
                Console.WriteLine("Amžius negali būti neigiamas.");
            }
        }
    }

    public string Vardas { get; set; } // Automatinė savybė

    public void RodytiInfo()
    {
        Console.WriteLine($"Vardas: {Vardas}, Amžius: {Amžius}");
    }
}

Kapsuliacijos privalumai:

  • Įgyvendinimo paslėpimas: Objekto vidiniai duomenys yra paslėpti nuo išorinio kodo.
  • Prieigos kontrolė: Prieiga prie duomenų vyksta per metodus arba savybes, leidžiančias atlikti validaciją ir verslo logiką.
  • Lankstumas: Keitimai vidinėje klasės įgyvendinime neįtakoja išorinio kodo, kuris naudoja jos sąsają.
  • Priežiūros gerinimas: Kodas tampa struktūruotesnis ir lengviau suprantamas.