RačunalnikiProgramiranje

Kakšna je encapsulation? Inkapsulacija v programiranju

Encapsulation je ena od treh glavnih značilnosti objektno usmerjenega programiranja (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, ob uporabi teh treh načel. Objektno usmerjeni jeziki, ki jih potrebujejo, morajo slediti temu jasno.

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 o tem, kako je izvajanje prikrito, zato se ohrani celovitost podatkov.

Terminologija

Encapsulation (programiranje) je uporaba modifikatorjev dostopa za skrivanje koščkov 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 "inkapsulacije" je manipulacija modifikatorjev dostopa. To pomeni, da razvijalec sam odloči, katere lastnosti, metode in razredi bodo odprte za razred odjemalca in katere so skrite.

Modifikatorji dostopa

Obstajajo taki modifikatorji dostopa, ki med drugim lahko manipulirajo z encapsulacijo (programiranje Java):

  • Javna (javna - javna, odprta, dostopna) - dostop do skupnih vsebin za trenutne predmete in razrede ter 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ščiteno (zaščiteno, polkritično, dostopno) - dostop do trenutnega razreda in izvedenih izdelkov iz njega;
  • Nedefiniran modifikator dostopa privzeto pomeni, da je polje / metoda vidno za celoten paket trenutnega razreda.

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

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

Vloga encapsulacije

Inkapsulacijski mehanizem omogoča izključitev zunanjega vpliva na programsko kodo in nepravilno uporabo vdelanih podatkov. To storite s kombiniranjem kode in podatkov v eno.

Object in Encapsulation

Kombinacija izvedbe programskega modula in podatkov, vgrajenih v kodo v programiranje, se imenuje predmet. Bistvo njene povezave z inkapsulacijo je v tem, da ta tehnika omogoča ohranjanje in zagotovitev integralnega delovanja obravnavanega 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 zelo enostavno narediti to celo za namen, je enkapsulacija zelo dobro načelo.

Enkapsulacijske enote

Razred kot osnovna enkapsulacija opisuje podatke in vsebuje kodo, ki lahko deluje s temi podatki. Prav tako je osnova za gradnjo predmeta. Slednji je nato predstavljen 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;
  • Funkcije članov - vsebujejo 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. Prikazana uporaba oznak za odpiranje / zapiranje

Uporaba sistema;

Imenski prostor OOPLibrary.Auto

{

///

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

///

Javni razred Auto

{

///

/// Spremenljivka, ustvarjena za pisanje, kolikšna je starost avtomobila, saj se razvijalec šteje, da je zunanja intervencija v tej lasti odvečna

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

///

Zasebno 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 zaradi zunanjih vplivov

Ker je bil za barvo izbran javni modifikator dostopa.

///

Javni niz Barva;

///

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 samodejni ()

{

_age = 5;

_isMoving = false;

Barva = "Vijolična";

Ime = "Skoda Octavia";

}

///

/ / Metoda izvede vrnitev starostne vrednosti avto. Zakaj je to potrebno?

/ / Modifikator zasebnega dostopa ne omogoča, da bi ga stranka spremenila.

///

Vrne starost avtomobila.

Javni niz GetAge ()

{

Vrnitev "Trenutno je izbrani stroj star" + _age + ".";

}

///

/// Č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.

///

Javni 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 nameščen, se ne premika");

}

}

///

/// V primeru premikanja vozila zavijte levo

///

Javni void MoveLeft ()

{

Če (_isMoving)

{

Console.WriteLine ("Obrnjeno v levo");

}

Drugače

{

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

}

}

///

/ / Podobna metoda z vrtenjem v desno

///

Javna void MoveRight ()

{

Če (_isMoving)

{

Console.WriteLine ("Zavijte desno je bilo uspešno");

}

Drugače

{

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

}

}

}

}

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sl.birmiss.com. Theme powered by WordPress.