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.