Kakšna je encapsulation? Inkapsulacija v programiranju
Encapsulation je ena od treh glavnih značilnosti objektno orientirano programiranje (OOP).
Vsebina
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.
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
Obstajajo 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.
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.
Uporabljena 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
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. ") -
}
}
}
}
- Objektno programiranje
- Strukturirano programiranje
- Objektno usmerjeno programiranje (OOP): polimorfizem
- Java programski jezik
- Seznam programskih jezikov. Programski jeziki na nizki in visoki ravni
- Kako se naučiti programiranja iz nič v priljubljenih programskih jezikih
- Kaj je Ruby? Programski jezik `Ruby`
- Programiranje iz nič: kje začeti? Kako začeti učenje programov iz nič v jeziku Java?
- OOP je kaj? Osnovna načela objektno usmerjenega programiranja
- Abstraktni razred in metoda: opis, značilnosti in značilnosti. Kakšna je razlika med abstraktnim…
- Najbolj priljubljeni programski jeziki. Programski jeziki za začetnike
- jаvascript: primere uporabe
- Kaj je kompilacija?
- PHP konstrukt: ustvarjanje primerkov razredov
- Kaj je proceduralno programiranje?
- Kateri programski jezik naj izberem za začetnika za učenje
- Objektno programiranje v Python: razredi, opis in funkcije
- Standardne C ++ knjižnice
- Sintaksa jаvascript parseInt: primeri uporabe
- Kako začeti programirati svoje programe
- Kaj je programski sistem