- Objektově orientované programování
- Výhoda OOP oproti procedurálně orientovanému programovacímu jazyku
- Rozdíl mezi objektově orientovaným a objektově orientovaným programovacím jazykem.
Na této stránce se seznámíme se základy OOP. Objektově orientované programování je paradigma, které poskytuje mnoho pojmů, jako např dědictví , datová vazba , polymorfismus , atd.
začátek je považován za první objektově orientovaný programovací jazyk. Programovací paradigma, kde je vše reprezentováno jako objekt, je známé jako skutečně objektově orientovaný programovací jazyk.
Pokec je považován za první skutečně objektově orientovaný programovací jazyk.
Oblíbené jsou objektově orientované jazyky Jáva , C# , PHP , Krajta , C++ , atd.
Hlavním cílem objektově orientovaného programování je implementovat entity reálného světa, například objekt, třídy, abstrakce, dědičnost, polymorfismus atd.
java int zdvojnásobit
OOPs (Object-Oriented Programming System)
Objekt znamená entitu reálného světa, jako je pero, židle, stůl, počítač, hodinky atd. Objektově orientované programování je metodologie nebo paradigma pro návrh programu pomocí tříd a objektů. Zjednodušuje vývoj a údržbu softwaru tím, že poskytuje některé koncepty:
Kromě těchto pojmů existují některé další termíny, které se používají v objektově orientovaném designu:
- Spojka
- Soudržnost
- Sdružení
- Agregace
- Složení
Objekt
Každá entita, která má stav a chování, je známá jako objekt. Například židle, pero, stůl, klávesnice, kolo atd. Může to být fyzické nebo logické.
Objekt lze definovat jako instanci třídy. Objekt obsahuje adresu a zabírá určité místo v paměti. Objekty mohou komunikovat, aniž by znaly podrobnosti o svých datech nebo kódu. Jedinou nezbytnou věcí je typ přijaté zprávy a typ odpovědi vrácené objekty.
Příklad: Pes je objekt, protože má stavy jako barva, jméno, plemeno atd., stejně jako chování, jako je vrtění ocasem, štěkání, jídlo atd.
Třída
Sbírka předmětů se nazývá třída. Je to logická entita.
Třídu lze také definovat jako plán, ze kterého můžete vytvořit samostatný objekt. Třída nezabírá žádné místo.
Dědictví
Když jeden objekt získá všechny vlastnosti a chování nadřazeného objektu , to je známé jako dědictví. Poskytuje opětovnou použitelnost kódu. Používá se k dosažení polymorfismu za běhu.
Polymorfismus
Li jeden úkol se provádí různými způsoby , to je známé jako polymorfismus. Například: přesvědčit zákazníka jinak, nakreslit něco, například tvar, trojúhelník, obdélník atd.
V Javě používáme přetěžování metod a přepisování metod k dosažení polymorfismu.
Dalším příkladem může být něco mluvit; například kočka mluví mňau, pes štěká woof atd.
Abstrakce
Skrytí vnitřních detailů a zobrazení funkčnosti je známá jako abstrakce. Například telefonní hovor, neznáme interní zpracování.
V Javě používáme abstraktní třídu a rozhraní k dosažení abstrakce.
Zapouzdření
Svázání (nebo zabalení) kódu a dat dohromady do jedné jednotky se nazývá zapouzdření . Například kapsle, která je obalena různými léky.
přejmenovat adresář linux
Třída Java je příkladem zapouzdření. Java bean je plně zapouzdřená třída, protože všechny datové členy jsou zde soukromé.
Spojka
Spojení odkazuje na znalosti nebo informace nebo závislost jiné třídy. Vzniká, když si třídy uvědomují jeden druhého. Pokud má třída podrobné informace o jiné třídě, existuje silná vazba. V Javě používáme modifikátory private, protected a public k zobrazení úrovně viditelnosti třídy, metody a pole. Pro slabší vazbu můžete použít rozhraní, protože neexistuje žádná konkrétní implementace.
Soudržnost
Soudržnost se týká úrovně složky, která provádí jeden dobře definovaný úkol. Jeden dobře definovaný úkol se provádí vysoce soudržnou metodou. Slabě soudržná metoda rozdělí úkol na samostatné části. Balíček java.io je vysoce soudržný balíček, protože má třídy a rozhraní související s I/O. Balíček java.util je však málo soudržný, protože má nesouvisející třídy a rozhraní.
Sdružení
Asociace představuje vztah mezi objekty. Zde může být jeden objekt spojen s jedním objektem nebo mnoha objekty. Mezi objekty mohou být čtyři typy spojení:
- Jeden k jednomu
- Jeden k mnoha
- Mnoho k jednomu a
- Mnoho k mnoha
Pojďme pochopit vztah s příklady v reálném čase. Například jedna země může mít jednoho premiéra (jeden ku jednomu) a předseda vlády může mít mnoho ministrů (jeden ku mnoha). Také mnoho poslanců může mít jednoho premiéra (mnoho k jednomu) a mnoho ministrů může mít mnoho oddělení (mnoho k mnoha).
Asociace může být jednosměrná nebo obousměrná.
Agregace
Agregace je způsob, jak dosáhnout asociace. Agregace představuje vztah, kdy jeden objekt obsahuje další objekty jako součást svého stavu. Představuje slabý vztah mezi objekty. Označuje se také jako a má vztah v Javě. Stejně jako dědičnost představuje je vztah. Je to další způsob opětovného použití objektů.
Složení
Složení je také způsob, jak dosáhnout asociace. Kompozice představuje vztah, kdy jeden objekt obsahuje další objekty jako součást svého stavu. Mezi obsahujícím objektem a závislým objektem existuje silný vztah. Je to stav, kdy obsahující objekty nemají nezávislou existenci. Pokud odstraníte nadřazený objekt, budou automaticky odstraněny všechny podřízené objekty.
Výhoda OOP oproti procedurálně orientovanému programovacímu jazyku
1) OOPs usnadňuje vývoj a údržbu, zatímco v programovacím jazyce orientovaném na procedury není snadné spravovat, pokud kód roste s rostoucí velikostí projektu.
2) OOPs poskytuje skrytí dat, zatímco v procedurálně orientovaném programovacím jazyce lze ke globálním datům přistupovat odkudkoli.
Obrázek: Reprezentace dat v procedurálně orientovaném programování
Obrázek: Reprezentace dat v objektově orientovaném programování
3) OOP poskytuje možnost mnohem efektivněji simulovat události v reálném světě. Můžeme poskytnout řešení skutečného slovního problému, pokud používáme objektově orientovaný programovací jazyk.
Jaký je rozdíl mezi objektově orientovaným programovacím jazykem a objektově založeným programovacím jazykem?
Objektově založený programovací jazyk sleduje všechny vlastnosti OOP kromě dědičnosti. JavaScript a VBScript jsou příklady objektově orientovaných programovacích jazyků.
Víš?
- Můžeme přetížit hlavní metodu?
- Java Constructor vrací hodnotu, ale co?
- Můžeme vytvořit program bez hlavní metody?
- Jakých šest způsobů použití tohoto klíčového slova?
- Proč není v Javě podporováno vícenásobné dědictví?
- Proč používat agregaci?
- Můžeme přepsat statickou metodu?
- Jaký je typ návratu kovariance?
- Jaká jsou tři použití klíčového slova Java super?
- Proč používat blok inicializátoru instance?
- Jaké je použití prázdné konečné proměnné?
- Co je to značka nebo tagované rozhraní?
- Co je to runtime polymorfismus nebo odesílání dynamických metod?
- Jaký je rozdíl mezi statickou a dynamickou vazbou?
- Jak je možný downcasting v Javě?
- Jaký je účel soukromého konstruktéra?
- Co je klonování objektů?
- Výhoda OOP
- Konvence pojmenování
- Objekt a třída
- Přetížení metody
- Konstruktér
- statické klíčové slovo
- toto klíčové slovo se šesti použitím
- Dědictví
- Agregace
- Přepsání metody
- Typ návratu kovariance
- super klíčové slovo
- Blok Inicializátoru instance
- konečné klíčové slovo
- Abstraktní třída
- Rozhraní
- Polymorfismus za běhu
- Statická a dynamická vazba
- Downcasting s operátorem instanceof
- Balík
- Modifikátory přístupu
- Zapouzdření
- Klonování objektů