Encapsularea este ceea ce? Încapsulare în programare
Encapsularea este una din cele trei caracteristici principale programarea orientată pe obiecte (OOP).
conținut
OOP Elementele de bază
Programarea orientată pe obiecte se află pe trei stâlpi ai universului său:
- Polimorfismul, răspunzând la întrebarea cum o anumită limbă de programare tratează obiecte care au o relație între ele, într-un mod similar.
- Moștenirea, care oferă un răspuns, arată modul în care se produce în mod repetat stimularea utilizării codului.
- Encapsulation, care este răspunsul la întrebarea despre modul în care implementarea este ascunsă și, astfel, integritatea datelor este păstrată.
terminologie
Încapsulare (programare) este utilizarea de modificatori de acces pentru a ascunde părți ale codului de la utilizatorul final. Sub el, la rândul său, înseamnă dezvoltator sau obiect moștenitor.
Esența conceptului de "încapsulare"
Definiția definește că încapsularea înseamnă a ascunde tot sau o parte a codului. 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.
Modificatori de acces
Există astfel de modificatori de acces care, printre altele, pot manipula încapsularea (programare Java):
- public (public - public, deschis, acces) - acces partajat atât pentru obiectele și clasele actuale, cât și pentru lumea exterioară;
- privat ("privat" - acces privat, privat, ascuns) - acces privat, esența căruia este complet opus celui anterior. Oferă acces numai din clasa curentă;
- protejat (protejat, semi-ascuns, acces) - acces pentru clasa curentă și derivatele acesteia;
- În mod implicit, un modificator de acces nespecificat implică faptul că câmpul / metoda este vizibil pentru întregul pachet de clasă curent.
În C # ("C Sharp"), în afară de cele specificate (cu excepția celor din urmă), există încă astfel de modificatori:
- intern (intern) - accesibilitate în colecția actuală, acces închis pentru toate celelalte cazuri;
- protejat intern ("acces protejat intern") - combinația a două modificatori într-una, în care proprietățile ambelor se manifestă.
Rolul de încapsulare
Mecanismul de încapsulare 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.
Obiect și încapsulare
Combinația dintre implementarea modulului de program și datele î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ă.
Avantajul încapsulării
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.
Ideea de protecție a datelor
Incapsularea este, de asemenea, un mecanism care pune în aplicare ideea de protecție a 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.
Unități de încapsulare
Clasa, ca unitate de bază de încapsulare, descrie datele și conține codul capabil să funcționeze 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.
Se utilizează de asemenea următoarea terminologie:
- membrii sunt codul și datele incluse în clasă;
- câmpuri sau variabile de instanță - așa-numitele date care definesc clasa;
- funcțiile membre - conțin codul însuși. Funcțiile membre sunt un nume generic. Un caz special este metodele.
Încapsulare pe un exemplu concret
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
folosind System-
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ă
/// este marcat cu modificatorul privat, adică acces privat, privat (vezi descrierea de mai sus).
///
private int _age-
///
/// variabila booleana (doar doua valori posibile - da sau nu) care descrie daca masina se misca in prezent
/// 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"
///
private bool _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).
///
șir public Name-
///
/// 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 ()
{
întoarcere "În prezent, mașina selectată este" + _age + "ani." -
}
///
/// Dacă mașina nu se mișcă, această metodă implementează începutul mișcării. Se verifică variabila care indică starea mașinii (indiferent dacă 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 = true-
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, Machine") -
}
altfel
{
Console.WriteLine ("Eroare: mașina este încă î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 ("Răsuciți 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 ("Transformarea spre dreapta a fost făcută cu succes") -
}
altfel
{
Console.WriteLine ("Eroare: masina nu sa mutat încă." Întoarcerea spre dreapta este în prezent o acțiune imposibilă ") -
}
}
}
}
- Programarea orientată pe obiecte
- Programare structurată
- Object-oriented programming (OOP): polimorfism
- Limbaj de programare Java
- Limba de programare de bază și istoricul acesteia
- Lista limbajelor de programare. Limbi de programare de nivel scăzut și înalt
- Cum de a învăța programarea de la zero în limbi de programare populare
- Ce este Ruby? Limba de programare "Ruby"
- OOP este ce? Principiile de bază ale programării orientate pe obiecte
- Clasă și metodă abstractă: descriere, caracteristici și caracteristici. Care este diferența dintre…
- Cele mai populare limbi de programare. Limbaje de programare pentru începători
- Limba de programare c (s)
- Scripting limbi de programare: sarcini, caracteristici și beneficii
- Folosind indexOf (jаvascript) atunci când lucrați cu matrice și șiruri de caractere
- Procedura de programare este ceea ce?
- Ce limbă de programare ar trebui să aleg pentru ca un începător să învețe
- Mediul de programare. Pe drumul spre crearea propriului software
- Cum să începeți să programați propriile programe
- Cel mai ușor limbaj de programare pentru începători
- Ce este sistemul de programare
- Clasificarea limbajelor de programare după niveluri