Sobes.tech
Junior

Mi az inkapszuláció?

sobes.tech MI

Válasz az MI-től

Az enkapszuláció egy olyan mechanizmus, amely lehetővé teszi egy objektum belső állapotának elrejtését és védelmét a külső beavatkozásoktól. Ez egyesíti az adatokat (mezőket) és az ezeken dolgozó módszereket egy egységes blokkban — az osztályban.

C#-ban az enkapszulációt hozzáférés módosítók (public, private, protected, internal, protected internal, private protected) és tulajdonságok (Properties) segítségével valósítják meg.

Példa tulajdonságok használatával:

public class Személy
{
    private int _kor; // Privát mező

    public int Kor // Nyilvános tulajdonság, amely kontrollált hozzáférést biztosít a _kor mezőhöz
    {
        get { return _kor; }
        set
        {
            if (value >= 0) // Adatvalidálás
            {
                _kor = value;
            }
            else
            {
                // Kivétel dobása vagy más művelet
                Console.WriteLine("A kor nem lehet negatív.");
            }
        }
    }

    public string Nev { get; set; } // Automatikus tulajdonság

    public void InfoKilistaz()
    {
        Console.WriteLine($"Név: {Nev}, Kor: {Kor}");
    }
}

Az enkapszuláció előnyei:

  • A megvalósítás elrejtése: Az objektum belső részletei el vannak rejtve a külső kód elől.
  • Hozzáférés ellenőrzése: A hozzáférés az adatokhoz módszereken vagy tulajdonságokon keresztül történik, lehetővé téve a validálást és az üzleti logikát.
  • Rugalmasság: A belső implementáció változtatásai nem befolyásolják a külső kódot, amely az interfészt használja.
  • Karbantartás javítása: A kód strukturáltabbá és érthetőbbé válik.