Pojmy "objekt" a "trieda" sú každému známe. Avšak pre návrhárov počítačov majú svoj vlastný podtext. Toto sú základné pojmy v objektovo-orientovanom programovaní. Triedy - dátový typ vývojár, vyznačujúci sa prostredníctvom zariadenia na prenos a ukladanie, profil využitie a sadu akcií, ktoré môžu byť vykonané nimi. Odlišujú sa v tom, čo môže byť implementované ako rozhranie.
Čo je OOP (objektovo orientovaného programovania)
Abstrakcia
Snažíme sa selektívne sústrediť len na tie veci, ktoré sú pre nás dôležité (v živote) alebo pre náš modul (v programovaní). Zmena jedného nezávislého modulu nemá vplyv na ostatné. Jediná vec, ktorú potrebujete vedieť, je to, čo nám dáva. Osoba, ktorá používa tento modul, sa nemusí starať o to, ako sa úloha rieši, čo sa deje na pozadí.
Zapuzdrenie
Dedičnosť
Polymorfizmus
Vlastnosti pojmov "trieda" a "objekt"
typu
TForml = trieda (TForm)
Tlačidlo: TButton;
postup ButtonlClick (odosielateľ: TObject);
konca;
môže byť
forma: TForml;
Ak chceme modelovať v našom programe, ako je napríklad auto, je nutné definovať jeho atribúty: model, palivo, značku, farbu, jeho správanie a tzv, štartovanie motora, brzdenie, zrýchlenie, atď. , Je jasné, že tieto ukazovatele sú charakteristické nielen pre jednu značku alebo model vozidla.
V objektovo orientovanom prístupe snažíme zovšeobecniť náš objekt (auto) s tým, že budeme modelovať v našom programe bude mať niekoľko atribútov a metód. Môžu existovať aj iné ukazovatele a charakteristiky vozidla, ale dostatočne sme na to, aby sme pochopili, ako trieda funguje v PLO.
Keď použijeme tieto údaje, vytvoríme auto s konkrétnymi parametrami. Pri programovaní toho istého objektu (zariadenia) môžeme mať rôzne charakteristiky, ako je uvedené v nasledujúcej tabuľke:
Objekt Object1 | 2 |
model: Vaz 2107 | model: Vaz 2109 |
palivo: benzín | palivo: nafta |
farba: červená | farba: zelená |
Spustenie motora: Štart () | Spustenie motora: Štart() |
brzdná metóda: prestávka () | brzdná metóda: prestávka () |
spôsob zrýchlenie: zrýchlenie () | spôsob podľa zrýchlenie: zrýchlenie () |
Objektovo orientované programovanie umožňuje jednoduché simulovanie správania komplexného reálneho systému. Z OOP dáta a funkcie (atribúty a metódy) sú kombinované v objekte. Toto zabraňuje potrebe akýchkoľvek všeobecných alebo globálnych údajov OOP. Tento prístup je hlavným rozdielom medzi objektovo orientovanými a procedurálnymi prístupmi.
Triedy OOP pozostávajú z prvkov rôznych typov:
- Dátové polia: ukladanie stavu triedy pomocou premenných a štruktúr.
- Metódy: podprogramy na manipuláciu so špecifikovanými údajmi.
- Niektoré jazyky umožňujú, aby bol tretí typ vlastníctva. To je niečo medzi prvými dvoma.
Metódy
Správanie triedy alebo jej príkladov sa určuje metódami. Toto je podprogram s možnosťou ovládania objektov. Tieto operácie môžu zmeniť stav objektu alebo jednoducho poskytnúť spôsoby prístupu k nemu.
Toto je definícia skupiny abstraktných akcií. Zistí, aké správanie by malo zobrazovať konkrétny objekt bez toho, aby určil, ako by sa mal implementovať.
Objekt môže mať viacero rolí a používatelia ho môžu používať z rôznych hľadísk. Napríklad objekt typu "človek" môže mať určitú úlohu:
- Vojak (s chovaním "strieľať v nepriateľovi").
- Muž (s chovaním "milovať svoju ženu").
- Daňovník (s chovaním "platenia daní") a tak ďalej.
Avšak každý objekt si uvedomuje svoje správanie svojou vlastnou cestou: Míša platí dane včas, Andrew s omeškaním, a Peter to vôbec neurobí. To isté možno povedať o každom objekte a iných rolach.
Vzniká otázka, prečo základná trieda všetkých objektov nie je rozhraním. Dôvodom je, že v tomto prípade každá trieda bude musieť implementovať malú, ale veľmi dôležitú skupinu metód, ktorá bude trvať zbytočne dlhý čas. Ukazuje sa, že nie všetky triedy vyžadujú konkrétnu implementáciu - vo väčšine prípadov je vo väčšine prípadov štandardne predvolená hodnota. Nie je potrebné ignorovať žiadne metódy, ale ak si to situácia vyžaduje, je možné vykonať ich výmenu.
Dobrým príkladom sú tlačidlá na prednej strane televízora. Dá sa povedať, že ide o rozhranie medzi používateľom a zapojením na druhej strane puzdra zariadenia.Človek klikne na tlačidlo napájania, čím zapne a vypne spotrebič. V tomto príklade je konkrétny televízor inštancia, každá metóda reprezentovaná tlačidlom a všetky spolu tvoria rozhranie. Vo svojej najbežnejšej forme je špecifikáciou skupiny súvisiacich metód bez ich implementácie.
Design
Toto kritérium je zodpovedná za prípravu objektu k akcii, napríklad nastavenie počiatočnej hodnoty pre všetky dáta a jeho prvky. Aj keď hrá zvláštnu úlohu, projektant - je to len ďalšie funkcie, s ktorou informácie možno prejsť zoznamu argumentov. Môžete ich použiť na ich inicializáciu. Názov mena triedy je rovnaký.
Nasledujúci príklad vysvetľuje koncepciu dizajnu triedy C ++ (populárny programovací jazyk):
#include
, za použitia namespace std;
class linky {
public:
void setlength (double ľan);
double getLength (void);
riadok (); //vyhlásenie o dizajne
súkromné: double length;
};
//definície funkcií vrátane dizajnéra
Linka :: linka (void) {
cout "objekt vytvoril" Endl;
}
void linka :: setlength (dvojitá ľan) {
, dĺžka = ľan;
}
,
, dvojitá čiara :: getLength (void) {
dĺžky návrat;
}
//Telo programu
int main () {
, združené;
//Dĺžka linky
line.setLength (6,0);
cout "Dĺžka riadku:" line.getLength () endl;
návrat 0;
}
Ak je uvedený vyššie uvedený kód je zostavený a vykonaný, že má nasledujúce výsledok:
zariadenia založená
Dĺžka linky: 6
destructor
Táto špeciálna funkcia trieda, ktorá zničí objekt akoiba oblasť jeho konania končí. Deštruktor kompilátora sa automaticky zavolá, keď je objekt mimo dohľadu.
Syntax destruktor je rovnaký ako pre konštruktéra, ale názov triedy používané v tomto prípade pre neho podpísať vlnovky "~" ako predponu.
V nasledujúcom príklade je jazyk C ++ destructor vysvetľuje pojem:
#include
pomocou namespace std;
trieda Line {
public: void setLength (double len);
double getLength (void);
riadok (); //Anotácie dizajnérov
~ Riadok (); //Destroyer Oznámenie
súkromné: double length;
}
//definície funkcií, vrátane dizajnér
linka :: Linka (void) {
cout "Objekt vytvoril" Endl;
}
Linka :: ~ Line (void) {
cout "Objekt je vzdialený" endl;
}
void Line :: setLength (double len) {
dĺžka = len;
}
dvojitý riadok :: getLength (void) {
návratová dĺžka;
}
//Body programu
int main () {
Line line;
//Dĺžka riadku
line.setLength (6,0);
cout "Dĺžka riadku:" line.getLength () endl;
návrat 0;
}
, ak je podávaný vyššie uvedený kód je zostavený a vykonaný, dá nasledujúce výsledok:
zariadenia založená [193 ]
Dĺžka linky: 6
vzdialený predmet
, aké sú triedy výhody
výhody usporiadanie softvér v triedach o ' objekty sú rozdelené do troch kategórií:Rýchly vývoj. Jednoduchá údržba. Opätovné použitie kódu a dizajnu.
Triedy a PLO vo všeobecnosti prispievajú k rýchlemu vývoju, pretože znižujú sémantickú medzeru medzi kódom a používateľmi. Stojí to za tohodnotené mnohými programátormi. Pomocou tohto systému môžu analytici komunikovať s vývojármi aj používateľmi, ktorí používajú ten istý slovník, hovoria o účtoch, klientoch, účtoch atď. Triedy objektov často prispievajú k rýchlemu vývoju, pretože väčšina objektovo orientovaných prostredí má výkonné ladiace a testovacie nástroje. Inštancie triedy je možné skontrolovať počas vykonávania, aby sa zabezpečilo správne fungovanie systému. Navyše namiesto získavania výpisu jadra väčšina objektovo orientovaných prostredí interpretuje možnosti ladenia. V dôsledku toho môžu vývojári presne analyzovať, kde sa vyskytla chyba v programe, a zistiť, aké metódy, argumenty a hodnoty boli použité.