nisfarm.ru

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

Zapouzdření je jedním ze tří hlavních rysů objektově orientované 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í) 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.
koncepce zapouzdření

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

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 programový kód a nesprávné použití vložených dat. To se provádí kombinací kódu a dat do jednoho.
příklad zapouzdřeného programování

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.

zapouzdření programování javaPouží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 / 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é.) -

}}

}}

}}

}}

Sdílet na sociálních sítích:

Podobné
© 2021 nisfarm.ru