Encapsularea este una dintre cele trei principalecaracteristici ale programării orientate pe obiecte (OOP). Celelalte două sunt polimorfismul și moștenirea. Împreună ele formează baza PLO, care determină întreaga gamă de posibilități de scriere a programelor în diferite limbi, folosind aceste trei principii. Obiective orientate limbi, la rândul lor, sunt obligate să le urmeze în mod clar.
Programarea orientată pe obiecte se află pe trei stâlpi ai universului său:
Encapsularea (programarea) esteutilizarea modificatorilor de acces pentru a ascunde părțile din codul de program de la utilizatorul final. Sub el, la rândul său, înseamnă dezvoltator sau obiect moștenitor.
Definiția definește că, sub incapsulareimplică ascunderea întregului cod de program sau a unei părți din acesta. Esența conceptului de "încapsulare" este manipularea modificatorilor de acces. Aceasta înseamnă că dezvoltatorul însuși decide ce proprietăți, metode și clase vor fi deschise clasei client și care sunt ascunse.
În C # ("C Sharp"), în afară de cele specificate (cu excepția celor din urmă), există încă astfel de modificatori:
Mecanismul încapsulării vă permite să excludeți influența externă asupra codului programului și utilizarea incorectă a datelor încorporate în acesta. Acest lucru se face combinând codul și datele într-unul.
Integrarea implementării modulului și programului softwareDatele încorporate în cod în programare se numește un obiect. Esența legăturii sale cu încapsularea constă în faptul că această tehnică permite menținerea și asigurarea integrității mecanismului în cauză.
Encapsularea este o modalitate de a simplifica procesul de codificare. Numeroase rânduri de cod rămân "în spatele scenei", iar în lucrarea principală lucrează cu exemple de obiecte.
Encapsularea este, de asemenea, un mecanism carerealizează ideea protecției datelor. Logica Programul de programare orientat-obiect este construit pe baza a ceea ce va fi cea mai mare parte a datelor de acces modificator ascuns privat (privat, privat) sau protejat (protejat). Lumea din afara, clientul accidental sau deliberat nu va afecta punerea în aplicare a unui modul software. Pentru că, de fapt, face foarte ușor să nu chiar intenționat, încapsulare - acesta este un principiu foarte bun.
Clasa, ca unitate de bază de încapsulare,descrie datele și conține codul care poate funcționa cu aceste date. Este, de asemenea, baza pentru construirea unui obiect. Acesta din urmă, la rândul său, este reprezentat ca un exemplu al clasei.
Exemple de încapsulare (programare):
* Notă:
descrierea este o descriere a metodei / proprietății / variabilei, adică comentarea a ceea ce se întâmplă de fapt în program. Demonstrați cu etichete de deschidere / închidere
utilizând Sistemul;
namespace OOPLibrary.Auto
{
///
/// Această clasă este destinată să descrie proprietățile și acțiunile unei mașini
///
public class Auto
{
///
/// O variabilă creată pentru a scrie la ea, cât de veche este mașina, deoarece intervenția externă în această proprietate este considerată de dezvoltator ca fiind inutilă
/// modificator este marcat privat, adică închis, acces privat (vezi. Descrierea de mai sus).
///
private int _age;
///
/// O boolean (doar două valori posibile - da sau nu), care descrie dacă vehiculul se deplasează în acest moment
/// De asemenea, nu ar trebui să fie deschis pentru utilizatorul final, oricine este el. Prin urmare, acestei variabile i se atribuie un modificator de acces privat "privat"
///
bool privat _isMoving;
///
/// Această variabilă de șir trebuie să conțină informații despre culoarea mașinii. Poate fi supusă unor schimbări de la influențele externe
/// deoarece modificatorul de acces public "public" a fost ales pentru culoare.
///
șir public color;
///
/// În acest caz, presupunem că numele mașinii poate fi schimbat
/// atribuie un modificator public (acces public pentru toată lumea, indiferent de clasă sau de asamblare).
///
nume de șir public;
///
/// Constructorul de clase este deschis, iar toate proprietățile exprimate prin variabile și specificate mai devreme își obțin valorile
///
public Auto ()
{
_age = 5;
_isMoving = false;
Culoare = "Purpuriu";
Nume = "Skoda Octavia";
}
///
/// Metoda implementează valoarea returnată a vârstei auto. De ce este necesar?
/// modificatorul de acces privat nu permite clientului să-l schimbe.
///
/// Returnează vârsta mașinii.
șir public GetAge ()
{
retur "În prezent, mașina selectată este" + _age + "de ani.";
}
///
/// Dacă mașina nu se mișcă, această metodărealizează începutul mișcării. Se va face o verificare a variabilei care indică starea mașinii (indiferent dacă aceasta se deplasează sau nu) și, în funcție de rezultate, se efectuează acțiunea corespunzătoare / se afișează un mesaj corespunzător.
///
public void Start ()
{
dacă (_isMoving)
{
Console.WriteLine ("Mișcarea a fost deja pornită");
}
altfel
{
_isMoving = adevărat;
Console.WriteLine ("Pentru a începe, atenție .. Redirecționați! Să mergem!");
}
}
///
/// Dacă mișcarea a fost pornită, atunci această metodă o oprește. Același logic de programare ca în cazul precedent.
///
public void Stop ()
{
dacă (_isMoving)
{
_isMoving = false;
Console.WriteLine ("Stop, mașină");
}
altfel
{
Console.WriteLine ("Eroare: mașina este deja în poziție, nu se mișcă");
}
}
///
/// Rotiți la stânga dacă există o mișcare a vehiculului
///
public void MoveLeft ()
{
dacă (_isMoving)
{
Console.WriteLine ("Stins la stânga");
}
altfel
{
Console.WriteLine ("Eroare: mașina este staționară, funcția de rotație nu este disponibilă momentan");
}
}
///
/// Metoda similară cu rotația spre dreapta
///
public void MoveRight ()
{
dacă (_isMoving)
{
Console.WriteLine ("Turnul din dreapta a reușit");
}
altfel
{
Console.WriteLine ("Eroare: mașina nu s-a mutat încă." Deplasarea spre dreapta este în prezent o acțiune imposibilă ");
}
}
}
}
</ p>