SITE SØK

Encapsulation er hva? Innkapsling i programmering

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.

innkapsling er

OOP Grunnleggende

Objektorientert programmering står på tre søyler i sitt univers:

  • Polymorfisme, som svarer på spørsmålet om hvordan et bestemt programmeringsspråk behandler objekter som har forhold til hverandre på en lignende måte.
  • Arv, som gir et svar, hvordan stimuleringen av bruken av koden skjer gjentatte ganger.
  • Encapsulation, som er svaret på spørsmålet om hvordan implementeringen er skjult, og dermed er integriteten til dataene bevart.

terminologi

Innkapsling (programmering) erbruk av tilgangsmodifikatorer for å skjule deler av programkoden fra sluttbrukeren. Under den betyr det i sin tur utvikleren eller det arvelige objektet.

konsepter for innkapsling

Essensen av begrepet "innkapsling"

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.

Tilgangsmodifiseringer

innkapslingsprogrammering
Det er slike tilgangsmodifikatorer som blant annet kan manipulere innkapsling (Java programmering):

  • offentlig (offentlig - offentlig, åpen, tilgang) - delt tilgang både for nåværende objekter og klasser, og for omverdenen;
  • privat (privat - privat, privat, skjult tilgang) - privat tilgang, hvis essens er helt motsatt til den forrige. Gir tilgang bare fra nåværende klasse;
  • beskyttet (beskyttet, delvis skjult, tilgang) - tilgang for nåværende klasse og dets derivater;
  • Som standard angir et uspesifisert tilgangsmodifikator at feltet / metoden er synlig for hele dagens klassepakke.

I C # ("C Sharp"), i tillegg til det angitte (unntatt sistnevnte), er det fortsatt slike modifikatorer:

  • intern (intern) - tilgjengelighet i dagens samling, lukket tilgang for alle andre tilfeller;
  • internt beskyttet ("intern beskyttet tilgang") - kombinasjonen av to modifikatorer til en, hvor egenskapene til begge dem manifesterer seg.

Kapsels rolle

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.

innkapslingsprogrammeringseksempel

Objekt og innkapsling

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.

Fordelene med innkapsling

Encapsulation er en måte å forenkle kodingsprosessen på. Tallrike kodelinjer forblir "bak kulissene", og i hovedklassen går arbeid med forekomster av objekter.

Ideen om databeskyttelse

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.

Innkapslingsenheter

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.

innkapslingsprogrammeringsjava
Følgende terminologi brukes også:

  • Medlemmer er koden og dataene som er inkludert i klassen;
  • felt eller forekomstvariabler-de såkalte dataene som definerer klassen;
  • medlemsfunksjoner - de inneholder selve koden. Medlemsfunksjoner er et generisk navn. Et spesielt tilfelle er metoder.

Innkapsling på et konkret eksempel

innkapslingsprogrammering er

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>
  • evaluering: