Zapouzdření je co? Zapouzdření v programování
Zapouzdření je jedním ze tří hlavních rysů objektově orientované programování (OOP).
Obsah
Základy OOP
Objektově orientované programování stojí na třech pilířích jeho vesmíru:
- Polymorfismus, reagující na otázku, jak určitý programovací jazyk zachází s objekty, které mají vzájemný vztah, podobným způsobem.
- Dědičnost, která dává odpověď, se opakuje, jak se stimuluje používání kódu.
- Zapouzdření, což je odpověď na otázku, jak je skryta implementace, a tím zůstává zachována celistvost údajů.
Terminologie
Zapouzdření (programování) je použití modifikátorů přístupu ke skrytí částí kódu od koncového uživatele. Pod ním se rozumí vývojář nebo dědičný objekt.
Podstata pojmu "zapouzdření"
Definice definuje, že zapouzdření znamená skrýt celý kód nebo jeho část. Podstatou koncepce "zapouzdření" je manipulace s modifikátory přístupu. To znamená, že vývojář sám rozhodne, které vlastnosti, metody a třídy budou otevřeny klientské třídě a které jsou skryté.
Modifikátory přístupu
Existují takové modifikátory přístupu, které mimo jiné mohou manipulovat s zapouzdřením (programování Java):
- veřejná (veřejná - veřejná, otevřená, přístupná) - sdílený přístup jak pro současné předměty a třídy, tak i pro vnější svět;
- soukromé ("soukromé" - soukromý, soukromý, skrytý přístup) - soukromý přístup, jehož podstatou je naprosto opačná oproti předchozí. Poskytuje přístup pouze z aktuální třídy;
- chráněná (chráněná, částečně skrytá, přístupná) - přístup pro současnou třídu a její deriváty;
- Ve výchozím nastavení nespecifikovaný modifikátor přístupu znamená, že pole / metoda je viditelná pro celý aktuální balíček třídy.
V C # ("C Sharp") kromě specifikovaných (s výjimkou druhého) existují stále takové modifikátory:
- vnitřní (interní) - přístupnost v aktuálním sběru, uzavřený přístup pro všechny ostatní případy;
- interní chráněný ("interně chráněný přístup") - kombinace dvou modifikátorů do jednoho, ve kterém se vlastnosti obou z nich projevují.
Role zapouzdření
Mechanismus zapouzdření umožňuje vyloučit externí vliv na programový kód a nesprávné použití vložených dat. To se provádí kombinací kódu a dat do jednoho.
Objekt a zapouzdření
Kombinace implementace programového modulu s daty obsaženými v kódu v programování se nazývá objekt. Podstata jeho spojení s zapouzdřením spočívá ve skutečnosti, že právě tato technika umožňuje zachovat a zajistit integritu dotyčného mechanismu.
Výhoda zapouzdření
Zapouzdření je způsob, jak zjednodušit proces kódování. Četné řádky kódu zůstávají "v zákulisí", a v hlavní třídě práce jde s případy objektů.
Myšlenka na ochranu dat
Zapouzdření je také mechanismus, který implementuje myšlenku ochrany dat. Programová logika objektově orientovaného programování je založena na skutečnosti, že většina dat bude skrytá modifikátorem přístupu soukromý (soukromý, soukromý) nebo chráněný (chráněný). Externí svět, klient nechtěně nebo úmyslně nemůže poškodit implementaci softwarového modulu. Protože ve skutečnosti je to velmi snadné, a to i účelně, zapouzdření je velmi dobrá zásada.
Jednotky zapouzdření
Třída, jako základní jednotka zapouzdření, popisuje data a obsahuje kód, který je schopen pracovat s těmito daty. Je také základem pro budování objektu. Ta druhá je zase reprezentována jako příklad třídy.
Používá se také následující terminologie:
- členy jsou kód a údaje obsažené ve třídě;
- pole nebo instance proměnné - tzv. data, která definuje třídu;
- členské funkce - obsahují samotný kód. Členské funkce jsou obecné jméno. Zvláštním případem jsou metody.
Zapouzdření na konkrétním příkladu
Příklad zapouzdření (programování):
* Poznámka:
popis je popis metody / vlastnost / proměnné, tj. komentář k tomu, co se v programu skutečně děje. Ukázáno se značkami otevírání / zavírání
pomocí systému-
jmenný prostor OOPLibrary.Auto
{{
///
/// Tato třída je určena k popisu vlastností a činností automobilu
///
veřejné třídy Auto
{{
///
/// Proměnná vytvořená pro zápis, jak stará je auto, protože externí zásah do této vlastnosti považuje developer za nadbytečnou
/// je označen modifikátorem soukromý, to je soukromý, soukromý přístup (viz popis výše).
///
soukromé int _age-
///
/// Booleovská proměnná (pouze dvě možné hodnoty - ano nebo ne), které popisují, zda se vůz v současné době pohybuje
/// Také by neměla být otevřená konečnému uživateli, ať už je kdo. Tato proměnná je proto přiřazena modifikátoru soukromého přístupu "privat"
///
soukromé bool _isMoving-
///
/// Tato řetězová proměnná musí obsahovat informace o barvě vozu. Mohou být předmětem změn z vnějších vlivů
/// protože byl zvolen modifikátor veřejného přístupu "public" pro barvu.
///
veřejný řetězec Color-
///
/// V tomto konkrétním případě předpokládáme, že název auta může být také změněn
/// přidělí veřejný modifikátor (veřejný přístup pro všechny, bez ohledu na třídu nebo sestavení).
///
veřejný řetězec Name-
///
/// Konstruktor třídy je otevřen a všechny vlastnosti vyjádřené proměnnými a specifikované dříve získávají jejich hodnoty
///
veřejný Auto ()
{{
_age = 5-
_isMoving = false-
Barva = "Fialová" -
Jméno = "Škoda Octavia" -
}}
///
/// Metoda implementuje návratovou hodnotu věku auto. Proč je to nutné?
/ / / modifikátor soukromého přístupu neumožňuje klientovi změnit jeho změnu.
///
/// Vrací věk vozidla.
veřejný řetězec GetAge ()
{{
návrat "V současné době je vybraný stroj" + _age + "roky starý." -
}}
///
/// Pokud se vůz nepohybuje, tato metoda provádí zahájení pohybu. Zobrazí se proměnná, která udává stav vozidla (ať už jde o jízdu, nebo ne), a v závislosti na výsledcích se provede odpovídající akce / zobrazí se odpovídající zpráva.
///
public void Start ()
{{
pokud (_isMoving)
{{
Console.WriteLine ("Pohyb již byl spuštěn") -
}}
jinak
{{
_isMoving = true-
Console.WriteLine ("Začněte pozornost .. Vpřed! Pojď!") -
}}
}}
///
/// Pokud byl tento pohyb spuštěn, zastaví se tento způsob. Stejná logika programování jako v předchozím případě.
///
public void Stop ()
{{
pokud (_isMoving)
{{
_isMoving = false-
Console.WriteLine ("Stop, stroj") -
}}
jinak
{{
Console.WriteLine ("Chyba: vůz je stále na svém místě, nepohybuje se") -
}}
}}
///
/// Otočte doleva, pokud dojde k pohybu vozidla
///
public void MoveLeft ()
{{
pokud (_isMoving)
{{
Console.WriteLine ("Odbočit vlevo") -
}}
jinak
{{
Console.WriteLine ("Chyba: Auto stojí, funkce rotace momentálně nedostupná") -
}}
}}
///
/// Podobná metoda s rotací vpravo
///
public void MoveRight ()
{{
pokud (_isMoving)
{{
Console.WriteLine ("Úspěšné obrácení vpravo") -
}}
jinak
{{
Console.WriteLine ("Chyba: Vozidlo se ještě nepohybovalo." Otočení vpravo je momentálně nemožné.) -
}}
}}
}}
}}
- Objektově orientované programování
- Modulární programování
- Strukturované programování
- Co je jаvascript? Historie vzhledu a hlavních rysů
- Objektově orientované programování (OOP): polymorfismus
- Java programovací jazyk
- Seznam programovacích jazyků. Programovací jazyky nízké a vysoké úrovně
- Jak se naučit programování od nuly v populárních programovacích jazycích
- Informatika. Základy algoritmizace a programování
- OOP je co? Základní principy objektově orientovaného programování
- Abstraktní třída a metoda: popis, vlastnosti a rysy. Jaký je rozdíl mezi abstraktní třídou a…
- Nejpopulárnější programovací jazyky. Programovací jazyky pro začátečníky
- Historie vývoje programovacích jazyků: stručně o všem
- Procedurální programování je co?
- Jaký programovací jazyk mám zvolit pro začátečníka, který se má učit
- Syntaxe jаvascript parseInt: příklady použití
- Syntaxe jаvascript parseInt: příklady použití
- Jak začít programovat vlastní programy
- Nejjednodušší programovací jazyk pro začátečníky
- Co je to programovací systém
- Klasifikace programovacích jazyků podle úrovní