Pojmy "objekt" a "třída" jsou pro každou osobu obeznámeny. Pro návrháře počítačů však mají svůj vlastní podtext. Jedná se o základní pojmy v objektově orientovaném programování. Třídy - typ dat určuje vývojář, který je charakterizován způsobem jejich přenosu a ukládání, profilem použití a sadou akcí, které mohou provádět. Odlišují se v tom, co lze implementovat jako rozhraní.
Co je OOP (objektově orientovaného programování)
Abstrakce
Snažíme se selektivně zaměřit pouze na ty věci, které jsou pro nás důležité (v životě) nebo pro náš modul (v programování). Změna jednoho nezávislého modulu nemá vliv na ostatní. Jediná věc, kterou potřebujete vědět, je to, co nám dává. Osoba, která používá tento modul, se nemusí starat o to, jak je úkol řešen, co se děje na pozadí.
Zapouzdření
Dědičnost
Polymorfismus
Vlastnosti pojmů "třída" a "objekt"
typu
TForml = třída (TForm)
Buttonl: TButton;
postup ButtonlClick (Odesílatel: TObject);
;
může být
Formulář: TForml;
Pokud chceme modelovat v našem programu, jako je například auto, je nutné definovat jeho atributy: model, palivo, značku, barvu, jeho chování a tzv, startování motoru, brzdění, zrychlení, atd. . Je zřejmé, že tyto ukazatele jsou charakteristické nejen pro jednu značku nebo model vozidla.
V objektově orientovaném přístupu snažíme zobecnit náš objekt (auto) s tím, že budeme modelovat v našem programu bude mít řadu atributů a metod. Mohou existovat i jiné parametry a vlastnosti vozidla, ale máme uvedeny natolik, aby pochopili, jak třídy v PLO.
Když používáme tato data, vytvoříme auto se specifickými parametry. Při programování stejný objekt (do auta), můžeme mít různé vlastnosti, jak je uvedeno v tabulce níže:
Objekt Object1 | 2 |
model: Vaz 2107 | model: Vaz 2109 |
palivo: benzín | palivo: nafta |
Barva: | Barva: zelená |
způsob startování motoru: Start () | Způsob nastartování motoru: Spustit() |
metoda brzdění: přetržení () | brzdná metoda: přerušení () |
Metoda zrychlení: Zrychlení () | Metoda zrychlení: Zrychlení () |
Objektivně orientované programování usnadňuje simulaci chování složitého reálného systému. Z OOP dat a funkcí (atributy a metody) jsou kombinovány v objektu. To zabraňuje potřebě obecných nebo globálních OOP dat. Tento přístup je hlavním rozdílem mezi objektově orientovanými a procedurálními přístupy.
Třídy OOP se skládají z prvků různých typů:
- Datová pole: ukládá stav třídy pomocí proměnných a struktur.
- Metody: podprogramy pro manipulaci se zadanými daty.
- Některé jazyky umožňují třetí typ vlastností. To je něco mezi prvními dvěma.
Metody
Chování třídy nebo jejích instancí je určeno metodami. Jedná se o podprogram se schopností ovládat objekty. Tyto operace mohou změnit stav objektu nebo jednoduše poskytnout způsoby, jak se k němu dostat.
Toto je definice skupiny abstraktních akcí. Zjistí, jaké chování by mělo zobrazovat určitý objekt, aniž by bylo specifikováno, jak by měl být implementován.
Objekt může mít více rolí a uživatelé ho mohou používat z různých hledisek. Například objekt typu "člověk" může mít určitou roli:
- Voják (s chováním "střílet v nepřítele").
- Muž (s chováním "milovat jeho ženu").
- Daňový poplatník (s chováním "placení daní") a tak dále.
Avšak každý objekt si uvědomuje své chování svým vlastním způsobem: Míša platí daně včas, Andrew s po lhůtě a Petr to vůbec nečiní. Totéž lze říci o každém objektu a jiných rolích.
Vyvstává otázka, proč základní třída všech objektů není rozhraním. Důvodem je, že v tomto případě bude každá třída muset zavést malou, ale velmi důležitou skupinu metod, která bude trvat zbytečně dlouho. Ukazuje se, že ne všechny třídy vyžadují konkrétní implementaci - ve většině případů je standardně ve výchozím nastavení standardní. Není třeba ignorovat žádné metody, ale pokud to situace vyžaduje, je možné provést jejich nahrazení.
Dobrým příkladem jsou tlačítka na přední straně televizoru. Dá se říci, že jsou rozhraním mezi uživatelem a kabelem na druhé straně pouzdra zařízení.K zapnutí a vypnutí spotřebiče klikne osoba, která zapíná napájení. V tomto příkladu je konkrétní televizní instance instance, každá metoda je reprezentována tlačítkem a společně tvoří rozhraní. Ve své nejběžnější formě je specifikací skupiny souvisejících metod bez jejich implementace.
Návrhář
Toto kritérium odpovídá za přípravu objektu, například za účelem nastavení počátečních hodnot všech dat a jejich prvků. Přestože hraje zvláštní roli, konstruktér je jen další funkce, která vám umožňuje předávat informace prostřednictvím seznamu argumentů. Můžete je použít k jejich inicializaci. Jméno navrhovatele třídy je stejné.
Následující příklad vysvětluje koncept konstruktoru třídy v jazyce C ++ (společný programovací jazyk):
#include
pomocí jmenného prostoru std;
třída Line {
public:
void setLength (double len);
double getLength (prázdný);
Řádek (); //Prohlášení o návrhu
soukromé: double length;
};
//Definice funkcí, včetně konstruktoru
Řádek :: Line (void) {
cout "Objekt vytvořen" endl;
}
prázdný řádek :: setLength (double len) {
length = len;
}
double Line :: getLength (void) {
délka návratu;
}
//Tělo programu
int main () {
Linka;
//Délka čáry
line.setLength (6.0);
cout "Délka řádku:" line.getLength () endl;
návrat 0;
}
Když je výše uvedený kód sestaven a proveden, získá se následující výsledek:
Vytvořený objekt
Destructor
Toto je zvláštní funkce třídy, která ničí objekt jakopouze oblast jeho činnosti končí. Dekteriér kompilátoru se automaticky zavolá, když je objekt mimo dohled.
Syntaxe destruktor je stejný jako pro konstruktéra, ale název třídy používané v tomto případě pro něj podepsat vlnovky „~“ jako předponu.
V následujícím příkladu je jazyk C ++ destructor vysvětluje pojem:
#include
pomocí namespace std;
třída Line {
public: void setLength (double len);
double getLength (prázdný);
Řádek (); //Anotace designérů
~ Řádek (); //Destroyer Oznámení
soukromé: double length;
}
//definice funkcí, včetně designér
linka :: Linka (void) {
cout "Objekt vytvořil" endl;
}
linie :: ~ linka (void) {
cout "vzdálený předmět" endl;
}
void Line :: setLength (double len) {
délka = len;
}
dvojitý řádek :: getLength (void) {
délka návratu;
}
//Tělo programu
int main () {
, sdružené;
//délka řádku
line.setLength (6.0);
cout "Délka řádku:" line.getLength () endl;
návrat 0;
}
, pokud je podáván výše uvedený kód je sestaven a proveden, dá následující výsledek:
zařízení založena [193 ]
Délka řádku: 6
Objekt je vzdálený
objekty jsou rozděleny do tří kategorií:
Rychlý vývoj. Snadná údržba. Opětovné použití kódu a návrhu.
Třídy a PLO obecně přispívají k rychlému vývoji, protože snižují sémantickou mezeru mezi kódem a uživateli. Stojí to za tohodnocené mnoha programátory. Pomocí tohoto systému mohou analytici komunikovat s vývojáři i uživateli pomocí stejného slovníku, mluvit o účtech, klientech, účtech atd. Třídy objektů často přispívají k rychlému vývoji, protože většina objektově orientovaných prostředí má výkonné nástroje pro ladění a testování. Instance instancí je možné zkontrolovat během provádění, aby se zajistilo správné fungování systému. Navíc namísto získání jaderného výpisu většina objektově orientovaných prostředí interpretuje možnosti ladění. Výsledkem je, že vývojáři mohou přesně analyzovat, kde došlo k chybě v programu, a zjistit, jaké metody, argumenty a hodnoty byly použity.