Objektově orientované programování je založeno na prezentaci programu ve formě souboru objektů. Každý objekt patří do třídy, která naopak zaujímá své místo v dědičné hierarchii. Použití OOP minimalizuje redundantní data, což zlepšuje ovladatelnost a pochopení programu.
Co je OOP
Vznikl v důsledku vývoje procedurálního programování. Základem objektově orientovaných jazyků jsou následující principy, jako jsou:
zapouzdření; dědictví; polymorfismus.Některé zásady, které byly původně stanoveny v prvních OOP, prošly podstatnou změnou.
Příklady objektově orientovaných jazyků:
Pascal. S uvolněním Delphi 7 na oficiální úrovni se začalo říkat Delphi. Hlavní oblastí použití objektu Object Pascal je psaní aplikačního softwaru. C ++ je široce používán k vývoji softwaru, který je jedním z nejpopulárnějších jazyků. Platí pro tvorbu OS, aplikací, ovladačů zařízení, aplikací, serverů a her. Java je přenášeno v bajtu, zpracované virtuálním strojem Java. Výhodou tohoto způsobu provedení je nezávislost operačního systému a zařízení. Stávající rodiny: Standard Edition, Enterprise Edition, Micro Edition, Card. javascript je používán jako skriptovací jazyk pro webové stránky. Syntaxe většinou připomíná C a Java. Je implementací aplikace Ecmascript. Aplikace Ecmascript samotná se používá jako základ pro vytváření dalších skriptovacích jazyků, jako je například JScript, ActionScript. Cíl-Czaložené na jazyce C a samotný kód C je jasný pro kompilátor Objective-C. Perl - vysoká úroveň je interpretována v dynamickém obecném jazyce microsoft. Má bohaté možnosti pro práci s textem, který byl původně navržen speciálně pro manipulaci s textem. V současné době se používá při správě systému, vývoji síťového programování, bioinformatiky apod. PHP. Zkratka je přeložena jako hypertextový preprocesor. Používá se k vývoji webových aplikací, včetně části serveru. Umožňuje vytvářet aplikace gui pomocí balíčků PHP-GTK, PHP-Qt a WinBinder. Python je jazyk obecného určení zaměřený na zlepšení produktivity vývojářů a čitelnosti kódu. Projekt Cython byl vyvinut k překladu programů napsaných v jazyce Python do kódu C. Abstrakce
Jakákoli kniha žánru "Object-Oriented Programming for Dummies" zdůrazňuje jeden z hlavních principů - abstrakce. Cílem je rozdělit podrobnosti nebo charakteristiky implementace programu na důležité a nedůležité. Požadováno pro velké projekty, umožňuje pracovat na různých úrovních systémové reprezentace bez specifikování detailů.
Abstraktní datový typ je prezentován jako rozhraní nebo struktura. Umožňuje nemyslet na úroveň detailů implementace. ATD nezávisí na jiných částech kódu. Dobře známý aforismus Davida Wheelera svědčí: Všechny problémy v informatice mohou být vyřešeny na jiné úrovni abstrakce.
Dědičnost
Objektově orientované jazyky jsou k dispozicizděděný je jedním z nejdůležitějších zásad.
Označuje, že funkce některých typů mohou být znovu použity. Třída, která dědí vlastnosti jiného, se nazývá derivát, potomník nebo podtřída. Ten, z něhož se dědí dědictví, se nazývá předchůdce, základna nebo superclass. Vztah ke dědicům potomstva vytváří zvláštní hierarchii. Existuje několik typů dědičnosti:
jednoduché; množné číslo.Když více dědictví může být několik dětí od jednoho předka, když je prostý - pouze jeden. To je hlavní rozdíl mezi typy. Dědičnost vypadá takto: třída Animal {funkce draw () {return "just animal"; } Funkce jíst () {return zvíře žere ";}} class Cow rozšiřuje Animal {function draw () {return" něco, co vypadá jako kráva „;}} Vidíme, že třída Cow dědí všechny metody třídy Animal teď. pokud splní Cow.eat (), dostanete „zvíře žere“, respektive metoda draw () změnila. Cow.draw () vrátí „něco, co vypadá jako kráva“, a Animal.draw () vrátí „jen zvíře "
Zapouzdření
Zapouzdření omezuje přístup k ostatním komponentům, váže údaje na způsoby zpracování a pro balení se používá specifikátor soukromého přístupu.
Obvykle je definována koncepce zapouzdření a utajení, ale některé jazyky tyto koncepty odlišují. Jinými slovy jsou chráněny kritické vlastnosti a jejich změna je nemožná. třída zvířete {private $ name; funkce __construct ($ name) {$ this- & gt; jméno = $ jméno; } funkce getName {} {vrátit $ this-> jméno; }} Název je přijat jako argument konstruktoru. Když se konstruktor používá v jiných částech kódu, nic nemůže změnit název. Jakvidět, je označen uvnitř, pro jiné části kódu není k dispozici.