Vyhledávání webu

Zapouzdření je co? Zapouzdření v programování

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.

zapouzdření je

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í) 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.

koncepce zapouzdření

Podstata pojmu "zapouzdření"

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é.

Modifikátory přístupu

zapouzdření
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 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.

příklad zapouzdřeného programování

Objekt a zapouzdření

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.

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ý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.

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 konstrukci objektu. Ta druhá je zase reprezentována jako příklad třídy.

zapouzdření programování java
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

zapouzdření je programování

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>
  • Hodnocení: