Encapsularea este ceea ce? Încapsulare în programare

Encapsularea este una din cele trei caracteristici principale programarea orientată 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.încapsularea este

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.
concepte de încapsulare

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

încapsulare de programareExistă 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.
exemplu de programare de încapsulare

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.

încapsulare de programare javaSe 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

programarea de încapsulare este

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ă ") -

}

}

}

}

Distribuiți pe rețelele sociale:

înrudit
Programare structuratăProgramare structurată
Object-oriented programming (OOP): polimorfismObject-oriented programming (OOP): polimorfism
Limbaj de programare JavaLimbaj de programare Java
Limba de programare de bază și istoricul acesteiaLimba de programare de bază și istoricul acesteia
Lista limbajelor de programare. Limbi de programare de nivel scăzut și înaltLista 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 populareCum de a învăța programarea de la zero în limbi de programare populare
Ce este Ruby? Limba de programare "Ruby"Ce este Ruby? Limba de programare "Ruby"
OOP este ce? Principiile de bază ale programării orientate pe obiecteOOP este ce? Principiile de bază ale programării orientate pe obiecte
Clasă și metodă abstractă: descriere, caracteristici și caracteristici. Care este diferența dintre…Clasă și metodă abstractă: descriere, caracteristici și caracteristici. Care este diferența dintre…
Cele mai populare limbi de programare. Limbaje de programare pentru începătoriCele mai populare limbi de programare. Limbaje de programare pentru începători
» » Encapsularea este ceea ce? Încapsulare în programare