Zapouzdření je jedním ze tří hlavníchvlastnosti objektově orientovaného programování (OOP). Další dvě jsou polymorfismus a dědičnost. Společně tvoří základ PLO, který určuje celou škálu možností psaní programů v různých jazycích pomocí těchto tří principů. Objektově orientované jazyky jsou zase povinny je jasně sledovat.
Objektově orientované programování stojí na třech pilířích jeho vesmíru:
Zapouzdření (programování) jepoužití modifikátorů přístupu ke skrytí částí kódu programu od koncového uživatele. Pod ním se rozumí vývojář nebo dědičný objekt.
Definice definuje, že za zapouzdřeníto znamená skrytí celého programového kódu nebo jeho části. 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é.
V C # ("C Sharp") kromě specifikovaných (s výjimkou druhého) existují stále takové modifikátory:
Mechanismus zapouzdření umožňuje vyloučit externí vliv na kód programu a nesprávné použití dat v něm obsažených. To se provádí kombinací kódu a dat do jednoho.
Integrace implementace softwarového modulu aData obsažená v kódu v programování se nazývají 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.
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ů.
Zapouzdření je také mechanismus, kterýrealizuje 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.
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 konstrukci objektu. Ta druhá je zase reprezentována jako příklad třídy.
Příklad zapouzdření (programování):
* Poznámka:
popis je popis metody / vlastnosti / 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 výše uvedený popis).
///
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ěl být otevřen konečnému uživateli, bez ohledu na to, kdo je. Tato proměnná je tedy přiřazena modifikátoru soukromého přístupu "privat"
///
private bool _isMoving;
///
/// Tato řetězová proměnná musí obsahovat informace o barvě auta. 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 Barva;
///
/// 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ý název řetězce;
///
/// 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, použijte tuto metodurealizuje počátek pohybu. Zkontroluje 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 již na svém místě, nepohybuje se");
}}
}}
///
/// Otočte doleva, pokud dojde k pohybu vozidla
///
public void MoveLeft ()
{{
pokud (_isMoving)
{{
Console.WriteLine ("Otočeno doleva");
}}
jinak
{{
Console.WriteLine ("Chyba: vozidlo stojí, funkce rotace je momentálně nedostupná");
}}
}}
///
/// Podobná metoda s rotací vpravo
///
public void MoveRight ()
{{
pokud (_isMoving)
{{
Console.WriteLine ("Odbočit vpravo bylo úspěšné");
}}
jinak
{{
Console.WriteLine ("Chyba: vůz se ještě nepohnul." Otočení vpravo je momentálně nemožné.);
}}
}}
}}
}}
</ p>