Se zavedením konceptu "objektu" mohli vývojáři popsat strukturu softwarových systémů pomocí pojmů "reálného světa" a udržovat systémy s miliony řádků kódu, což bylo nemožné při použití procedurální paradigmatu. Procesní programování nemohlo poskytnout dostatečnou úroveň vývoje a podpory komplexních softwarových systémů v oblasti bankovnictví, telekomunikací a dalších oblastí činnosti kde se požadavky na programy neustále stávají složitějšími. Styl (paradigma) programování, který je založen na koncepci třídy a objektu, byl vyvinut jako vývoj procedurální paradigmatu, která přestala být účinná, když se vyvinula složitost softwarových projektů a nazývala se "objektově orientované programování" (OOP).
Poprvé se objektově orientované programování začalo používat v jazyce Simula 67, který měl velký vliv na vývoj jazyků, jako jsou Lisp a Smalltalk. Největší vývoj OOP však byl v polovině 90. let, kdy byla vytvořena C ++ "OOP classic", jejíž práce s objekty byla přijata populárními programovacími prostředími Delphi a VisualFoxPro. PLO se nadále vyvíjí a mezi novými paradigmaty lze identifikovat paradigma zaměřenou na aspekty a orientovanou na předměty. Každý objektově orientovaný jazyk rozšiřuje základní pojmy OOP s jedinečnými přírůstky a rozšířeními v závislosti na konkrétním použití. V tomto článku se budeme zabývat implementací OOP v programovacím prostředí Delphi a PHP vývojovým jazykem.
OOP paradigma se skládá ze tří základních pojmů: zapouzdření, polymorfismus a dědičnost.
Mechanismus kombinace kódu a dat uvnitř objektu, stejně jako jejich ochrana před vnějšími změnami. Uvnitř objektu mohou být data a kód otevřené (veřejné) pro přístup a úpravy jinými objekty a uzavřené (soukromé) pro externí změny.
Nejdůležitějším prvkem koncepce OOP, který umožňuje použití jediného jména pro funkce, které provádějí podobné akce. Zpočátku je obtížné pochopit význam polymorfismu, a proto uvádíme jednoduchý příklad. V libovolném programovacím jazyce pro každý typ čísel, například v "klasickém" C pro nalezení modulu čísla, musíme použít funkci abs () pro celá čísla, pro dlouhá celočíselná laboratoř (), pro čísla s plovoucí čárou fabs (). To vede k nutnosti zapamatovat si syntaxi sady funkcí a dalšího zatížení paměti a procesoru počítače. Objektově orientované programování pomocí mechanismu polymorfismu vám umožňuje napsat funkci, abyste modul modulu () určili a použili jej v aritmetických výpočtech, aniž byste přemýšleli o typu čísel. Stačí napsat výraz modul () a získat správnou odpověď. Plus snížení kódu programu a zatížení systému. Jiný příklad polymorfismu je zobrazen na obrázku - obecná třída "Křivka" (Tvar) je "rodič" pro kruh, obdélník a hvězdu.
Mechanismus OOP, který umožňuje objektu mít (zdědí) metody jiného objektu. Přesněji, objekt obdrží (dědí) všechny základní vlastnosti svého "předka" a přidá k nim metody, které jsou pro něj jedinečné. "Dědic" objektu zdědí metody dvou objektů, atd. Dědičnost se také nazývá třídní hierarchie. Použití dědičnosti usnadňuje správu velkého množství informací a programového kódu. Dále můžete vidět, jak objekty dědí společné vlastnosti z nadřazené třídy "Auto".
Všechny jazyky podporující objektově orientované programování mají stejnou interpretaci koncepce třídy a objektu. Třída - typ dat pro popis vlastností a provozu "skutečného" objektu, například bankovního účtu. Objekt je samostatná instance třídy. Metoda - kód softwaru, který mění chování objektu nebo jeho stav v závislosti na hodnotě jeho vlastností. Modifikátor přístupu - metoda, která odděluje prvky třídy do otevřených a uzavřených polí. Konstruktor je metoda, která je provedena nejprve po inicializaci objektu a vrátí jej do původního stavu. Destruktor je metoda nazvaná při vymazání objektu. Schéma znázorňuje interakci třídních prvků.
Jádrem vývojového prostředí je podmnožina jazyka Pascal s prvky OOP - Object Pascal. Prostředí a jazyk Delphi bylo prvním grafickým vývojovým prostředím pro MS Windows. Objektově orientované programování delphi je sada standardních abstraktních tříd, které zapouzdřují určité prvky programu Windows, jako je grafické rozhraní, práce s RAM atd. Delphi má významný vliv na vývoj všech objektově orientovaných jazyků, zejména C # pro vývojové prostředí Microsoft .NET. Nejnovější verze Delphi 8 funguje pouze s .NET.
TObject je "rodič" všech tříd Delphi. Třída poskytuje všechny své "potomky" s podporou funkcí objektově orientovaného programování a jeho konstruktér zajišťuje, že program spustí a pracuje správně ve Windows. TPersistent - poskytuje objekty s interakcí na úrovni datových přenosových toků. Přenáší toky dat a poskytuje přístup k Inspektoru objektů. TComponent - umožňuje vytvářet libovolné nevizuální objekty a zajišťuje jejich interakci s celým vývojovým prostředím. Právě toto umožňuje práci s objekty a komponentami programu ve vizuálním vývojovém prostředí. Jeho potomky TGraphicControl vytvářejí různé prvky bez okna, například grafické pozadí atd. TControl - všechny objekty zobrazené na obrazovce (okna, seznamy, tlačítka, formuláře atd.) Jsou jeho potomci. Zahrnuje práci s funkcemi GUI Windows TWinControl - poskytuje práci s okny programu. Jeho potomka TCustomControl umožňuje vytvářet ovládací prvky, jako jsou textové editory, seznamy voleb.
PHP je jedním z nejpopulárnějších jazyků pro vývoj webových aplikací a původně byl plně programovacím jazykem. Objektově orientované programování v php se objevilo později, počínaje čtvrtou verzí. Potřeba podporovat oba programovací styly - procedurální a objektově orientovaná - vedla k tomu, že prvky OOP jsou stále doplňkem, nikoli základem jazyka. Situace se však rychle mění směrem k objektu PHP. Verze PHP 5 plně podporuje všechny prvky OOP a vývojář má úplnou svobodu při vytváření vlastních tříd a objektů, na rozdíl od Delhi, kde vývojář musí používat standardní třídy v jednom či druhém případě se všemi možnými nevýhodami. Syntaxe prvků objektu PHP není obtížná pro programátory, kteří dříve pracovali na C ++ / # a Delphi.
Objektově orientovaná programovací paradigma se nadále vyvíjí a používá se v mnoha prvcích softwarových systémů, například ve specializovaných databázích, která podporují objektový datový model a při vývoji aplikací pro tablety a mobilní telefony. Mezi novými jazyky objektů můžeme rozlišovat Python, který je široce používán pro vývoj internetových systémů, a Go, multifunkční programovací jazyk od společnosti Google.