Innkapsling er en av de tre viktigsteegenskaper ved objektorientert programmering (OOP). De to andre er polymorfisme og arv. Sammen danner de grunnlaget for PLO, som bestemmer hele muligheten for å skrive programmer på forskjellige språk ved å bruke disse tre prinsippene. Objektorienterte språk er igjen pålagt å følge dem tydelig.
Objektorientert programmering står på tre søyler i sitt univers:
Innkapsling (programmering) erbruk av tilgangsmodifikatorer for å skjule deler av programkoden fra sluttbrukeren. Under den betyr det i sin tur utvikleren eller det arvelige objektet.
Definisjonen definerer det under innkapslingdet innebærer skjuling av hele eller deler av programkoden. Essensen av begrepet "innkapsling" er manipulering av tilgangsmodifikatorer. Dette betyr at utvikleren selv bestemmer hvilke egenskaper, metoder og klasser som vil være åpne for klientklassen, og hvilke som er skjulte.
I C # ("C Sharp"), i tillegg til det angitte (unntatt sistnevnte), er det fortsatt slike modifikatorer:
Innkapslingsmekanismen gjør det mulig å ekskludere ekstern innflytelse på programkoden og feil bruk av dataene som er innebygd i den. Dette gjøres ved å kombinere koden og dataene til en.
Integrasjon av implementeringen av programvaremodulen ogData innebygd i koden i programmering kalles et objekt. Essensen av sin forbindelse med innkapsling er at en slik metode gjør det mulig å opprettholde og sikre integriteten til drift av mekanismen.
Encapsulation er en måte å forenkle kodingsprosessen på. Tallrike kodelinjer forblir "bak kulissene", og i hovedklassen går arbeid med forekomster av objekter.
Innkapsling er også en mekanisme sominnser ideen om databeskyttelse. Programlogikken for objektorientert programmering er basert på at de fleste dataene vil bli skjult av tilgangsmodifikatoren privat (privat, privat) eller beskyttet (beskyttet). Den eksterne verden, klienten ved et uhell eller forsett, kan ikke skade implementeringen av programvaremodulen. Siden det faktisk er veldig enkelt å gjøre dette selv med vilje, er innkapsling et veldig godt prinsipp.
Klasse, som den grunnleggende innkapslingsenheten,beskriver dataene og inneholder koden som er i stand til å operere med disse dataene. Det er også grunnlaget for å bygge en gjenstand. Sistnevnte er igjen representert som en forekomst av klassen.
Innkapsling (programmering) eksempel:
* Merk:
beskrivelse er en beskrivelse av metoden / egenskapen / variabelen, det vil si kommentere hva som faktisk skjer i programmet. Demonstrert med åpne / lukke koder
bruker system;
namespace OOPLibrary.Auto
{
///
/// Denne klassen er ment å beskrive egenskaper og handlinger av en bil
///
offentlig klasse Auto
{
///
/// En variabel opprettet for å skrive til den, hvor gammel er bilen, siden det ytre intervensjon til denne eiendommen vurderes av utvikleren å være overflødig
/// det er merket med modifikatoren privat, det vil si privat, privat tilgang (se beskrivelsen ovenfor).
///
privat int _age;
///
/// Boolean variabel (kun to mulige verdier - ja eller nei) som beskriver om bilen er i ferd med å flytte
/// Det bør heller ikke være åpent for sluttbrukeren, den han er. Derfor er denne variabelen tilordnet en privat tilgang modifikator "privat"
///
privat bool _isMoving;
///
/// Denne strengvariabelen må inneholde informasjon om fargen på bilen. Det kan bli gjenstand for endringer fra eksterne påvirkninger
/// fordi offentlig tilgang modifikator "offentlig" ble valgt for fargen.
///
offentlig streng Farge;
///
/// I dette spesielle tilfellet antar vi at navnet på bilen også kan endres
/// tildeler en offentlig modifikator (offentlig tilgang for alle, uansett klasse eller montering).
///
offentlig streng Navn;
///
/// Klassekonstruksjonen åpnes, og alle egenskapene uttrykt av variabler og angitt tidligere, får sine verdier
///
offentlig Auto ()
{
_age = 5;
_isMoving = false;
Farge = "Lilla";
Navn = "Skoda Octavia";
}
///
/// Metoden implementerer returverdi av alderen til auto. Hvorfor er det nødvendig?
/// Den private tilgangsmodifiseringen gjør det ikke mulig for klienten å endre den.
///
/// Returnerer alderen på bilen.
offentlig streng GetAge ()
{
returnere "For øyeblikket er den valgte maskinen" + _age + "år gammel.";
}
///
/// Hvis bilen ikke beveger seg, denne metodeninnser starten på bevegelsen. Det kontrolleres om variabelen som angir bilens tilstand (om den er på reise eller ikke), og avhengig av resultatene, utføres tilsvarende handling / en tilsvarende melding vises.
///
Offentlig tomgang Start ()
{
hvis (_isMoving)
{
Console.WriteLine ("Bevegelsen er allerede startet");
}
annet
{
_isMoving = true;
Console.WriteLine ("For å starte, oppmerksomhet .. Videresend! La oss gå!");
}
}
///
/// Hvis bevegelsen ble startet, stopper denne metoden. Samme programmeringslogikk som i forrige tilfelle.
///
offentlig tomgang Stopp ()
{
hvis (_isMoving)
{
_isMoving = false;
Console.WriteLine ("Stopp, maskin");
}
annet
{
Console.WriteLine ("Feil: bilen er allerede på plass, beveger seg ikke");
}
}
///
/// Slå til venstre hvis det er en bevegelse i bilen
///
offentlig tomgang MoveLeft ()
{
hvis (_isMoving)
{
Console.WriteLine ("Slått til venstre");
}
annet
{
Console.WriteLine ( "Feil kjøretøyet står stille rotasjon funksjonen er for tiden ikke tilgjengelig.");
}
}
///
/// Lignende metode med rotasjon til høyre
///
Offentlig tomgang MoveRight ()
{
hvis (_isMoving)
{
Console.WriteLine ("Slå til høyre var vellykket");
}
annet
{
Console.WriteLine ("Feil: Bilen har ikke blitt flyttet ennå." Å slå til høyre er for øyeblikket en umulig handling. ");
}
}
}
}
</ p>