OqPoWah.com

Kakšna je encapsulation? Inkapsulacija v programiranju

Encapsulation je ena od treh glavnih značilnosti objektno orientirano programiranje (OOP).

Druga dva sta polimorfizem in dedovanje. Skupaj tvorijo osnovo PLO, ki določa celotno paleto možnosti za pisanje programov v različnih jezikih, z uporabo teh treh načel. Objektno usmerjeni jeziki, ki jih potrebujejo, morajo slediti temu jasno.Inkapsulacija je

OOP Osnove

Objektno usmerjeno programiranje stoji na treh stebrih svojega vesolja:

  • Polimorfizem, ki se odziva na vprašanje, kako določen programski jezik obravnava predmete, ki so med seboj povezani, na podoben način.
  • Dedovanje, ki daje odgovor, kako se vzpodbuja uporaba kode večkrat.
  • Inkapsulacija, ki je odgovor na vprašanje, kako je implementacija skrita, in s tem ohranja celovitost podatkov.

Terminologija

Encapsulation (programiranje) je uporaba modifikatorjev dostopa za skrivanje delov kode od končnega uporabnika. Pod njim, po drugi strani, pomeni razvijalec ali predmet dedovanja.
koncepti inkapsulacije

Bistvo pojma "enkapsulacija"

Opredelitev opredeljuje, da enkapsulacija pomeni prikriti celotno ali del kode. Bistvo koncepta "enkapsulacije" je manipulacija dostopnih modifikatorjev. To pomeni, da sam razvijalec sam odloči, katere lastnosti, metode in razredi bodo odprte za odjemalski razred in katere so skrite.

Modifikatorji dostopa

programiranje encapsulacijeObstajajo taki modifikatorji dostopa, ki med drugim lahko manipulirajo z inkapsulacijo (programiranje Java):

  • javni (javni - javni, odprti, dostopni) - deljen dostop tako za trenutne predmete kot tudi za zunanji svet;
  • zasebni ("zasebni" - zasebni, zasebni, skriti dostop) - zasebni dostop, katerega bistvo je v nasprotju s prejšnjim. Omogoča dostop le iz trenutnega razreda;
  • zaščiten (zaščiten, polkritičen, dostop) - dostop za sedanji razred in njegove izvedene izdelke;
  • Privzeto, nedefiniran modifikator dostopa pomeni, da je polje / metoda vidna za celoten paket trenutnega razreda.

V C # ("C Sharp") poleg navedenih (razen slednjih) še vedno obstajajo naslednji modifikatorji:

  • notranja (notranja) - dostopnost v trenutni zbirki, zaprt dostop za vse druge primere;
  • notranja zaščitena ("notranji zaščiteni dostop") - kombinacija dveh modifikatorjev v eno, v katerem se lastnosti obeh manifestirajo.

Vloga encapsulacije

Mehanizem inkapsulacije vam omogoča, da izključite zunanji vpliv na programsko kodo in nepravilno uporabo vdelanih podatkov. To storite s kombiniranjem kode in podatkov v eno.
primer enkripcijskega programiranja

Object in Encapsulation

Kombinacija izvajanja programskega modula in podatkov, vgrajenih v kodo v programiranje, se imenuje predmet. Bistvo njene povezave z inkapsulacijo je v tem, da je ta tehnika, ki omogoča ohranjanje in zagotavljanje celovitosti zadevnega mehanizma.

Prednost inkapsulacije

Encapsulation je način za poenostavitev procesa kodiranja. Številne vrstice kode ostajajo "za prizori", v glavnem delu pa gre za primere predmetov.

Zamisel o varstvu podatkov

Encapsulation je tudi mehanizem, ki izvaja idejo o varstvu podatkov. Programska logika objektno usmerjenega programiranja temelji na dejstvu, da bo večina podatkov skrival modulator dostopa zasebni (zasebni, zasebni) ali zaščiteni (zaščiteni). Zunanji svet, stranka naključno ali namerno ne more poškodovati izvajanja modula programske opreme. Ker je v resnici to zelo enostavno narediti celo za namen, je enkapsulacija zelo dobro načelo.

Enote inkapsulacije

Razred kot osnovna enkapsulacija opisuje podatke in vsebuje kodo, ki lahko deluje s temi podatki. Prav tako je osnova za gradnjo predmeta. Slednja je v zameno predstavljena kot primer razreda.

programska encapsulation javaUporabljena je tudi naslednja terminologija:

  • člani so koda in podatki, vključeni v razred;
  • polja ali spremenljivke primera - ti podatki, ki opredeljujejo razred;
  • članske funkcije - vsebujejo samo kodo. Funkcije članov so generično ime. Poseben primer so metode.

Inkapsulacija na konkretnem primeru

programiranje encapsulacije je

Primer encapsulacije (programiranja):

* Opomba:

opis je opis metode / lastnosti / spremenljivke, kar pomeni, da komentira, kaj se dejansko zgodi v programu. Prikazano z oznakami za odpiranje / zapiranje

z uporabo sistema-

namespace OOPLibrary.Auto

{

///

/// Ta razred je namenjen opisovanju lastnosti in dejanj avtomobila

///

javni razred Auto

{

///

/// Spremenljivka, ustvarjena za pisanje, kolikšna je starost avtomobila, saj je razvijalec štel, da je zunanja intervencija v to lastnost odvečna

/// je označen z modifikatorjem zasebnega, to je zasebnega zasebnega dostopa (glejte zgoraj opisani opis).

///

zasebni int _age-

///

/// Boolova spremenljivka (samo dve možni vrednosti - da ali ne), ki opisuje, ali se avtomobil trenutno premika

Prav tako ne sme biti odprt za končnega uporabnika, kdorkoli je. Zato je tej spremenljivki dodeljen zasebni modifikator dostopa "privat"

///

zasebni bool _isMoving-

///

Ta niz spremenljivke mora vsebovati informacije o barvi avtomobila. Lahko se spreminjajo od zunanjih vplivov

ker je bil za barvo izbran javni modifikator dostopa.

///

javni niz Barvno-

///

V tem primeru predpostavljamo, da se lahko ime avtomobila tudi spremeni

/// dodeljuje javni modifikator (javni dostop za vsakogar, ne glede na razred ali sestavo).

///

javni niz Ime-

///

/// Konstruktor razreda se odpre in vse lastnosti, ki jih izrazijo spremenljivke in so bile prej navedene, dobijo svoje vrednosti

///

javni Auto ()

{

_age = 5-

_isMoving = false-

Barva = "Vijolična" -

Ime = "Skoda Octavia" -

}

///

/ / Metoda izvede povratno vrednost starosti avto. Zakaj je to potrebno?

/ / modifikator zasebnega dostopa ne omogoča, da ga stranka spremeni.

///

Vrni starost avtomobila.

javni niz GetAge ()

{

vrnitev "Trenutno je izbrani stroj" star + star ". -




}

///

/// Če se avtomobil ne premakne, ta metoda izvede začetek gibanja. Preveri se spremenljivka, ki označuje stanje avtomobila (ne glede na to, ali gre za potovanje ali ne) in, odvisno od rezultatov, se izvede ustrezno dejanje / prikaže se ustrezno sporočilo.

///

public void Start ()

{

če (_ismoving)

{

Console.WriteLine ("Gibanje je že začelo") -

}

drugače

{

_isMoving = true-

Console.WriteLine ("Za začetek, pozornost .. Naprej, pojdimo!") -

}

}

///

/// Če se je premik začel, ga ta metoda ustavi. Enaka programska logika kot v prejšnjem primeru.

///

javni void Stop ()

{

če (_ismoving)

{

_isMoving = false-

Console.WriteLine ("Ustavi, stroj") -

}

drugače

{

Console.WriteLine ("Napaka: avto je še vedno nameščen, se ne premika") -

}

}

///

/// V primeru premikanja vozila zavijte levo

///

javni void MoveLeft ()

{

če (_ismoving)

{

Console.WriteLine ("Zavijte levo") -

}

drugače

{

Console.WriteLine ("Napaka: avto je miren, funkcija vrtenja trenutno ni na voljo") -

}

}

///

/ / Podobna metoda z vrtenjem v desno

///

javni void MoveRight ()

{

če (_ismoving)

{

Console.WriteLine ("Obrnitev na desno je bila uspešna") -

}

drugače

{

Console.WriteLine ("Napaka: avto se še ni premaknil." Obrnitev na desno je trenutno nemogoče dejanje. ") -

}

}

}

}

Zdieľať na sociálnych sieťach:

Príbuzný