Što je to encapsulation? Inkapsuliranje u programiranju
Kapsuliranje je jedna od tri glavne značajke objektno orijentirano programiranje (OOP).
sadržaj
OOP Osnove
Objektno orijentirano programiranje stoji na tri stupa svog svemira:
- Polimorfizam, odgovarajući na pitanje kako određeni programski jezik tretira objekte koji imaju međusobne odnose, na sličan način.
- Nasljeđivanje, koje daje odgovor, kako se stimulacija upotrebe koda ponavlja.
- Encapsulation, što je odgovor na pitanje kako je implementacija skrivena, a time i cjelovitost podataka sačuvana.
terminologija
Encapsulation (programiranje) je korištenje modifikatora pristupa za skrivanje dijelova koda od krajnjeg korisnika. Pod njom, zauzvrat, znači razvojni programer ili nasljedni objekt.
Bit pojma "inkapsulacije"
Definicija definira da kapsuliranje znači skrivanje cijelog ili dijela koda. Bit pojma "inkapsulacije" je manipulacija modifikatorima pristupa. To znači da sam razvojni program odlučuje koja će svojstva, metode i klase biti otvoreni za klijentsku klasu i koji su skriveni.
Modifikatori pristupa
Postoje takvi modifikatori pristupa koji, između ostalog, mogu manipulirati inkapsulacijom (Java programiranje):
- javni (javni, javni, otvoreni, pristup) - zajednički pristup i za sadašnje objekte i klase, a za vanjski svijet;
- privatni ("privatno" - privatni, privatni, skriveni pristup) - privatni pristup, čija je suština potpuno suprotna prethodnom. Omogućuje pristup samo iz trenutne klase;
- zaštićeni (zaštićeni, polu-skriveni, pristupni) pristup za sadašnju klasu i njegove derivate;
- Prema zadanim postavkama, neodređeni pristupni modifikator podrazumijeva da je polje / metoda vidljiva za cijeli paket trenutne klase.
U C # ("C Sharp"), osim navedenog (osim potonjeg), još uvijek postoje takvi modifikatori:
- unutarnja (unutarnja) - dostupnost u trenutnoj zbirci, zatvoreni pristup za sve ostale slučajeve;
- interni zaštićeni ("unutarnji zaštićeni pristup") - kombinacija dva modifikatora u jednu, u kojoj se očituju svojstva obje vrste.
Uloga zatvaranja
Mehanizam inkapsulacije omogućuje vam isključivanje vanjskog utjecaja na programski kod i pogrešnu upotrebu podataka ugrađenih u njega. To se postiže kombinacijom koda i podataka u jednu.
Objekt i enkapsulacija
Kombinacija implementacije programskog modula i podataka ugrađenih u kod u programiranju naziva se objektom. Bit njegove povezanosti s enkapsulacijom leži u činjenici da je ta tehnika koja omogućuje održavanje i osiguranje cjelovitosti mehanizma o kojem je riječ.
Prednost inkapsulacije
Encapsulacija je način pojednostavljenja procesa kodiranja. Brojne crte koda ostaju "iza kulisa", a u glavnom razredu rada dolazi s primjerima objekata.
Ideja zaštite podataka
Inkapsulacija je također mehanizam koji provodi ideju zaštite podataka. Programska logika objektno orijentiranog programiranja temelji se na činjenici da privatni pristup privatnim (privatnim, privatnim) ili zaštićenim (zaštićenim) skriva većinu podataka. Vanjski svijet, klijent slučajno ili namjerno ne može oštetiti primjenu softverskog modula. Budući da je to vrlo lako učiniti čak i namjerno, inkapsulacija je vrlo dobar princip.
Jedinice za kapsuliranje
Klasa, kao osnovna jedinica inkapsulacije, opisuje podatke i sadrži kôd koji je sposoban za rad s tim podacima. To je također baza za izgradnju objekta. Potonji je, pak, predstavljen kao primjer klase.
Također se koristi sljedeća terminologija:
- članovi su kôd i podaci uključeni u klasu;
- polja ili varijable instance - tzv. podaci koji definiraju klasu;
- funkcije članova - one sadrže sam kod. Članske funkcije su opće ime. Poseban slučaj su metode.
Inkapsulacija na konkretnom primjeru
Primjer encapsulacije (programiranje):
* Napomena:
opis je opis metode / svojstva / varijable, odnosno komentiranje onoga što se zapravo događa u programu. Pokazano s oznakama otvaranja / zatvaranja
pomoću sustava-
imenik OOPLibrary.Auto
{
///
/// Ovaj razred namijenjen je opisivanju svojstava i djelovanja automobila
///
auto javnog razreda
{
///
/// Varijabla stvorena da piše na njemu, koliko je star auto, budući da je razvojni programer smatrao da je vanjska intervencija na ovo svojstvo suvišna
/// označen je modifikatorom privatnim, odnosno privatnim, privatnim pristupom (pogledajte opis gore).
///
privatni int _age-
///
/// Boolean varijabla (samo dvije moguće vrijednosti - da ili ne) koja opisuje da li se automobil trenutno kreće
/// Također ne smije biti otvoren krajnjem korisniku, tko god bio. Stoga, ova varijabla dodjeljuje privatni modifikator pristupa "privatnom"
///
privatni bool _isMoving-
///
/// Ova varijabla stringa mora sadržavati informacije o boji automobila. Može biti podložan promjenama od vanjskih utjecaja
/// jer je za boju odabran javni modifikator pristupa "javno".
///
javni niz Boja-
///
/ / U ovom konkretnom slučaju pretpostavljamo da se ime automobila može promijeniti
/// dodjeljuje javni modifikator (javni pristup za sve, bez obzira na razred ili skup).
///
javni niz Naziv-
///
/// Klasni konstruktor je otvoren, a sva svojstva koja izražavaju varijable i navedene ranije dobivaju njihove vrijednosti
///
javni auto ()
{
_age = 5-
_isMoving = false-
Boja = "Purple" -
Ime = "Skoda Octavia" -
}
///
/// Metoda provodi povratnu vrijednost doba automobila. Zašto je to potrebno?
/// modifikator privatnog pristupa ne omogućava klijentu da ga promijeni.
///
/// Vraća starost automobila.
javni niz GetAge ()
{
povratak "Trenutno odabrani uređaj je" + godina + "godina." -
}
///
/// Ako se automobil ne pomakne, ova metoda provodi početak kretanja. Promijenjena je varijabla koja označava stanje automobila (bez obzira kretali li se ili ne) i, ovisno o rezultatima, provodi se odgovarajuća akcija / prikazuje se odgovarajuća poruka.
///
javni prazni početak ()
{
ako (_isMoving)
{
Console.WriteLine ("Pokret je već pokrenut") -
}
drugo
{
_isMoving = true-
Console.WriteLine ("Za početak, pažnja .. Naprijed, idemo!") -
}
}
///
/// Ako je pokret pokrenut, tada ta metoda zaustavlja. Ista logika programiranja kao u prethodnom slučaju.
///
javni praznik Stop ()
{
ako (_isMoving)
{
_isMoving = false-
Console.WriteLine ("Stop, Machine") -
}
drugo
{
Console.WriteLine ("Pogreška: automobil je još uvijek na mjestu, ne krene") -
}
}
///
/// Okrenite lijevo ako postoji kretanje vozila
///
javna praznina MoveLeft ()
{
ako (_isMoving)
{
Console.WriteLine ("skrenite lijevo") -
}
drugo
{
Console.WriteLine ("Pogreška: vozilo je mirno, funkcija rotacije trenutno nije dostupna") -
}
}
///
/// Slična metoda s rotacijom desno
///
javni prazni MoveRight ()
{
ako (_isMoving)
{
Console.WriteLine ("Okretanje udesno je uspješno izvedeno") -
}
drugo
{
Console.WriteLine ("Pogreška: automobil se još nije preselio." Okretanje desno trenutno je nemoguće. ") -
}
}
}
}
- Objektno orijentirano programiranje
- Strukturirana programiranje
- Objektno orijentirano programiranje (OOP): polimorfizam
- Kako naučiti programiranje od nule na popularnim programskim jezicima
- Programiranje mikrokontrolera za početnike: jednostavno i pristupačno
- Programiranje od nule: gdje početi? Kako početi učiti programiranje od nule na Java jeziku?
- Ciklus s postcondition i petlja s preduvjetom
- Što je OOP? Osnovni principi objektno orijentiranog programiranja
- Sažetak klasa i metoda: opis, karakteristike i značajke. Koja je razlika između apstraktne klase i…
- jаvascript: typeof - potreba ili nove značajke
- jаvascript: primjeri primjene
- Skriptni programski jezici: zadaci, značajke i prednosti
- Rekurzivni algoritam: opis, analiza, značajke i primjeri
- Što je proceduralno programiranje?
- Koji programski jezik odabrati početnik na studij
- Sintaksa jаvascript parseInt: primjeri upotrebe
- Sintaksa jаvascript parseInt: primjeri upotrebe
- Kako započeti s programiranjem vlastitih programa
- Najlakši programski jezik za početnike
- Što je programski sustav
- Zašto koristiti programske jezike na visokoj razini?