Sobes.tech
Junior

Mis on kapseldumine?

sobes.tech AI

Vastus AI-lt

Inkapseleerimine on mehhanism, mis võimaldab varjata objekti sisemist olekut ja kaitsta seda välise sekkumise eest. See ühendab andmed (väljad) ja meetodid, mis töötavad nende andmetega, ühtseks blokiks — klassiks.

C#-s saavutatakse inkapsuleerimine juurdepääsukorralduste (public, private, protected, internal, protected internal, private protected) ja omaduste (Properties) abil.

Näide omadustega:

public class Person
{
    private int _age; // Privaatne väli

    public int Age // Avalik omadus pakub kontrollitud juurdepääsu _age väljakule
    {
        get { return _age; }
        set
        {
            if (value >= 0) // Andmete valideerimine
            {
                _age = value;
            }
            else
            {
                // Võib visata erandi või teha muud tegevust
                Console.WriteLine("Vanus ei saa olla negatiivne.");
            }
        }
    }

    public string Name { get; set; } // Automaatne omadus

    public void DisplayInfo()
    {
        Console.WriteLine($"Nimi: {Name}, Vanus: {Age}");
    }
}

Inkapseleerimise eelised:

  • Implementatsiooni varjamine: Objekti sisemised üksikasjad on välise koodi eest varjatud.
  • Juurdepääsukontroll: Andmetele pääseb ligi meetodite või omaduste kaudu, mis võimaldab teha valideerimist ja äriloogikat.
  • Paindlikkus: Klassisiseste muudatuste mõju välisele koodile, mis kasutab selle liidest, on minimaalne.
  • Hooldatavuse parandamine: Kood muutub struktureeritumaks ja arusaadavamaks.