nisfarm.ru

OOP je co? Základní principy objektově orientovaného programování

Proč je ve většině projektů preferováno objektově orientované programování? OOP nabízí efektivní způsob řešení jejich složitosti. Namísto toho, že program považuje za posloupnost spustitelných příkazů, reprezentuje ji jako skupinu objektů s určitými vlastnostmi a provádí s nimi určité akce. To vede k vytvoření jasnějších, spolehlivějších a jednodušších aplikací.

Základní principy objektově orientované programování (OOP) Byly vytvořeny proto, že v předchozích přístupech bylo zjištěno omezení. Mezi nimi - neomezený přístup k datům a velké množství odkazů, které omezují zavedení změn. Jejich povědomí a důvody jsou důležité, aby pochopili, co je OOP v programování a jaké jsou jeho výhody.

Procedurální jazyky

C, Pascal, FORTRAN a podobné jazyky jsou procedurální. To znamená, že každý z jejich operátorů objednává počítač, aby něco udělal: získání dat, přidání čísel, rozdělení o šest, zobrazení výsledku. Procedurální jazyková aplikace je seznam pokynů. Je-li malý, nevyžaduje se žádný jiný organizační princip (často nazývaný paradigmatem). Programátor vytvoří seznam pokynů a počítač je spustí.

Oddělení do funkcí

Když se aplikace stanou většími, seznam je těžkopádný. Málokdo může pochopit více než několik set instrukcí, dokud nejsou seskupeni. Z tohoto důvodu se tato funkce stala způsobem, jak aplikace usnadnit jejich tvůrcům. V některých jazycích může být stejný pojem nazýván podprogramem nebo postupem.

Aplikace je rozdělena do funkcí, z nichž každá má jasně definovaný účel a rozhraní.

Myšlenku rozdělení do postupů lze rozšířit jejich seskupením do většího objektu nazvaného modul, ale princip je podobný: seskupení komponent, které provádějí seznamy instrukcí.

Oddělení do funkcí a modulů je jedním ze základních kamenů strukturálního programování, které bylo několik desetiletí před příchodem OOP paralelní preventivní.

oop toto

Problémy strukturovaného programování

Jak rostly aplikace, strukturované programování začínají mít potíže. Projekty se staly příliš komplikovanými. Grafy se posunuly. Došlo k většímu počtu programátorů. Složitost rostla. Náklady vyskočily, graf se dále posunul a došlo ke kolapsu.

Analýza příčin těchto selhání odhalila nedostatky procedurální paradigmatu. Bez ohledu na to, jak dobře je implementován strukturovaný přístup k programování, jsou velké aplikace nadměrně složité.

Jaké jsou příčiny těchto problémů spojených s procedurálními jazyky? Za prvé, funkce mají neomezený přístup k globálním datům. Za druhé, nesouvisející postupy a významy neformují reálný svět.

Pokud uvažujeme o těchto problémech v kontextu inventarizačního programu, jedním z nejdůležitějších globálních datových prvků je souhrn účetních jednotek. Různé funkce jim mohou získat přístup k zadání nové hodnoty, zobrazení, změna a podobně.

Neomezený přístup

V programu napsaném například v jazyce C jsou dva typy dat. Místní jsou skryty uvnitř funkce a jiné procedury nejsou použity.

Pokud mají dvě nebo více funkcí přístup ke stejným datům, musí být tato data globální. Jedná se například o informace o položkách, které je třeba vzít v úvahu. Globálním datům lze přistupovat jakýmkoli postupem.




Ve velkém programu existuje mnoho funkcí a mnoho globálních prvků. Problém s procedurální paradigmem je, že to vede k ještě většímu počtu možných vazeb mezi nimi.

Takový velký počet sloučenin způsobuje několik potíží. Za prvé to komplikuje pochopení struktury programu. Zadruhé je obtížné provést změny. Změna globální datové položky může vyžadovat úpravu všech funkcí, které k ní mají přístup.

Například v účetním programu někdo rozhodne, že kód předmětu by neměl sestávat z 5 číslic, ale spíše z 12. To bude vyžadovat změnu typ dat z krátké na dlouhé. Nyní musí být funkce spojené s kódem změněny tak, aby fungovaly s novým formátem.

Když se prvky mění ve velké aplikaci, je obtížné říci, které postupy mají přístup k nim. Ale i když je to jasné, jejich změna může vést k nesprávné práci s jinými globálními daty. Všechno je spojeno se všemi ostatními, takže změna v jednom místě bude v jiném.

co je v programování

Modelování v reálném světě

Druhým a důležitějším problémem procedurální paradigmatu je to, že její umístění jednotlivých dat a funkcí není v reálném světě modelováno. Zde se zabýváme takovými předměty, jako jsou lidé a automobily. Nevypadají jako data nebo funkce. Komplexní reálné objekty mají atributy a chování.

Atributy

Příklady atributů (někdy nazývaných charakteristikami) pro lidi jsou barva očí a název práce, pro auta - výkon a počet dveří. Jak se ukázalo, atributy v reálném světě jsou ekvivalentní datům v programu. Mají specifické významy, jako modrá (barva očí) nebo čtyři (počet dveří).

Chování

Chování je to, co objekty reálného světa vytvářejí v reakci na nějaký druh dopadu. Pokud žádáte úřady, aby zvýšily své platy, odpověď je "ano" nebo "ne". Pokud stisknete brzdu, vůz se zastaví. Výslovnost a zastavení jsou příklady chování. Chování je jako postup: je voláno něco udělat, a to dělá. Samotná data a funkce tedy efektivně neupravují objekty reálného světa.

Odstraňování problémů

Objekt v OOP je reprezentován jako sbírka dat a funkcí. Pouze postupy, které se nazývají funkce členů v jazyce C ++, umožňují získat hodnoty. Data jsou skryta a chráněna před změnami. Hodnoty a funkce jsou zapouzdřeny v jedné jednotce. Zapouzdření a skrytí jsou hlavními pojmy v popisu jazyků OO.

Chcete-li změnit data, přesně víte, které funkce s nimi komunikují. K nim nemohou přistupovat žádné další postupy. To zjednodušuje psaní, ladění a údržbu programu.

Aplikace se zpravidla skládá z několika objektů, které vzájemně spolupracují a volávají funkce člena.

Dnes je nejpoužívanějším jazykem OOP (objektově orientované programování) C ++ (plus-plus). Java neobsahuje některé funkce, jako ukazatele, šablony a dědičná dědičnost, což činí méně výkonnou a univerzální než C ++. C # dosud nedosáhl popularity C ++.

Je třeba poznamenat, že tzv. Členové funkce v jazyce C ++ se nazývají metody v některých dalších jazycích OO, například Smalltalk. Datové prvky se nazývají atributy. Volání metody objektu odesílá zprávu.

Objektově orientované programování s plusem

Analogicky

K oddělením společnosti můžete předložit předměty. Ve většině organizací zaměstnanci nepracují jeden den s kádry, další na výplatní listině a pak týden, který dělá maloobchod. Každé oddělení má své vlastní zaměstnance s jasně stanovenou odpovědností. Existují také vlastní údaje: platy, údaje o prodeji, záznamy zaměstnanců atd. Lidé v odděleních pracují s informacemi. Oddělení společnosti tak usnadňuje kontrolu nad její činností a udržuje integritu dat. Za účetnictví odpovídá mzdy. Pokud potřebujete znát celkovou částku zaplacených mezd v jižní pobočce v červenci, nemusíte v archivu hromadit. Stačí zaslat poznámku pověřené osobě, počkat na to, aby tato osoba získala přístup k datům a odešla odpověď s požadovanými informacemi. To zajišťuje dodržování předpisů a nepřítomnost vnějšího rušení. Stejně tak objekt v OOP poskytuje organizaci aplikace.

Je třeba si uvědomit, že orientace na objekty se netýká podrobností programu. Většina příkazů C ++ odpovídá operátorům jazyka procedur, jako je C. Vlastně funkce členů v jazyce C ++ jsou velmi podobné funkcím v jazyce C. Pouze širší kontext umožní zjistit, zda je instrukce procedurální nebo objektově orientovaná.

objekt v oop to

Objekt v OOP: definice

Při zvážení problému programování v jazyce OO, namísto otázek o jeho rozdělení na samostatné funkce, vzniká problém rozdělení na objekty. OOP myšlení usnadňuje vývoj aplikací. Důvodem je podobnost softwaru a skutečných objektů.

Co se stává objektem v OOP? Níže jsou typické kategorie.

Fyzickým předmětem v OOP je:

  • transport v tocích;
  • elektrické prvky v programech návrhu obvodů;
  • zemí v modelu hospodářství;
  • letadel v systému řízení letového provozu.

Prvky uživatelského prostředí počítače:

  • menu;
  • okna;
  • grafika (čára, obdélník, kruh);
  • klávesnice, myši, tiskárny, diskové jednotky.

Lidé:

  • zaměstnanci;
  • studenti;
  • zákazníků;
  • prodejců.

dаta:

  • účetní kniha;
  • soukromá záležitost;
  • slovník;
  • tabulka zeměpisných šířky a délky osídlení.

Spojení mezi objekty reálného světa a OOP bylo výsledkem kombinace funkcí a dat: změnily programování. V procedurálních jazycích neexistuje taková úzká korespondence.

objekt v definici oopu

Třída

Objekty v OOP jsou členy tříd. Co to znamená? Programovací jazyky jsou vestavěné datových typů. Typ int, tj. celé číslo, je předdefinováno v jazyce C ++. Můžete deklarovat libovolný počet int proměnných.

Podobně je definována sada objektů stejné třídy. Definuje funkce a data obsažené v jeho objektech bez jejich vytváření, stejně jako int nevytváří proměnné.

Třída v OOP je popisem řady podobných objektů. Prince, Sting a Madonna jsou zpěváci. Neexistuje žádná osoba s tímto jménem, ​​ale lidé mohou být tzv. Jestliže mají odpovídající charakteristiky. Objekt OOP je instancí třídy.

Dědictví

V životě jsou třídy rozděleny do podtříd. Například zvířata jsou rozdělena na obojživelníky, savce, ptáky, hmyz atd.

Princip tohoto druhu rozdělení spočívá v tom, že každá podtřída má společné charakteristiky s třídou, ze které se děje. Všechny vozy mají kola a motor. To jsou definice vlastností vozidel. Kromě obecných charakteristik má každá podtřída své vlastní vlastnosti. Autobusy mají mnoho sedadel a nákladní auta mají prostor pro přepravu těžkých nákladů.

Podobně se základní třída může stát rodičem několika odvozených podtříd, které mohou být definovány tak, aby sdílely své vlastnosti s přidáním jejich vlastních. Dědictví je podobné funkci, která zjednodušuje procedurální program. Pokud několik částí kódu dělá téměř stejný, můžete extrahovat společné prvky a dát je do jednoho postupu. Tři sekce aplikací mohou volat funkci k provádění společných akcí, ale mohou také vytvářet vlastní operace. Podobně základní třída obsahuje data společná odvozené skupině. Stejně jako funkce dědičnost snižuje program OO a objasňuje propojení jeho prvků.

objekt v oop

Opětovné použití

Poté, co je třída vytvořena a laděna, může být předána dalším programátorům pro opětovné použití v jejich vlastních aplikacích. Toto je podobné knihovně funkcí, které lze zahrnout do různých aplikací.

V OOP je dědictví rozšíření myšlenky víceúčelového využití. Z existující třídy, aniž byste ji změnili, můžete vytvořit novou s přidáním dalších funkcí. Jednoduchost opětovného využití stávajícího softwaru je důležitou výhodou OOP. Předpokládá se, že toto zvyšuje výnos z počáteční investice.

Vytváření nových datových typů

Objekty jsou vhodné pro vytváření nových typů dat. Předpokládejme, že program používá dvojrozměrné hodnoty (např. Souřadnice nebo zeměpisné šířky a délky) a existuje potřeba vyjádřit akce s nimi aritmetické operace:

pozice1 = pozice + původ,

kde poloha1, poloha a počátek - dvojice nezávislých číselných hodnot. Vytvoření třídy obsahující tyto dvě hodnoty a prohlášení proměnných se svými objekty vytvoří nový datový typ.

základní principy objektově orientovaného programování

Polymorfismus, přetížení

Operátory = (rovné) a + (plus) použité v polohové aritmetice výše nečiní stejným způsobem jako u vestavěných typů, jako je int. Pozice objektů atd. Nejsou předdefinovány, ale jsou naprogramovány. Jak tyto operátory vědí, jak s nimi zacházet? Odpověď zní, že pro ně můžete definovat nové vzorce chování. Tyto operace budou členy funkcí třídy pozice.

Používání operátorů nebo postupů, v závislosti na tom, s čím pracují, se nazývá polymorfismus. Pokud existující operátor, například + nebo =, může pracovat s novým typem dat, je údajně přetížen. Přetížení v OOP je druh polymorfismu. Je to jeho důležitá vlastnost.

Kniha o OOP "Object-Oriented Programming for Dummies" umožní všem podrobněji se seznámit s tímto tématem.

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

Podobné
© 2021 nisfarm.ru