Objektově orientované programování

Z CHWiki

Přejít na: navigace, hledání

Objektově orientované programování je programovací paradigma, ve kterém programátor modeluje reálný svět pomocí tzv. objektů. Objekt v programovacím jazyce je celek vlastností (dat) a chování (programového kódu). Například objekt Button v GUI má vlastnosti jako třeba popisek, umístění a případně barvu. Vedle toho se ještě umí nakreslit, schovat nebo změnit některou svou vlastnost. V programu obyčejně figuruje velké množství objektů a každý řeší svůj úkol. Objekty spolu navzájem komunikují, například v GUI v počítačové hře řekne objekt obstarávající vstup z myši formuláři, že na něj bylo kliknuto. Formulář poté zjistí, že to bylo na tlačítko, a pošle mu příslušnou zprávu. Tlačítko na to reaguje tím, že se nakreslí jako stisknuté a pošle zprávu zaregistrovanému příjemci. Ten poté vykoná kód příslušící stisknutí daného tlačítka.

Objekty jsou vlastně konkrétní instance tzv. tříd. Třída popisuje jaké vlastnosti a funkce má druh objektů. Například máme třídu Auto a ta definuje vlastnosti jako rychlost, barvu, spotřebu a funkce pro nastartování, změnu směru a podobně. Od třídy Auto pak můžeme mít několik instancí, objektů, a každý bude mít svoje vlastní hodnoty pro rychlost, barvu a spotřebu. Tak můžeme mít pomalé modré auto, které hodně spotřebuje nebo červené auto s velmi nízkou spotřebou. Takto by vypadala třída Auto v C#:

public class Auto {
 public float Rychlost;
 public float Spotreba;
 public Color Barva;

 public bool Nastartovane;

 public void Startuj() {
   Nastartovane = true;
 }
 
 public void Zastav() {
   Nastartovane = false;
 }

}

Pak můžeme mít několik aut:

Auto pepovo, moje, frantovo;

a s každým můžeme nezávisle pracovat:

pepovo.Rychlost = 40;
moje.Rychlost = 120;
moje.Startuj();

každá instance si uchovává vlastní stav.

V současné době je objektově orientované programování velmi oblíbené a většina moderních jazyků ho podporuje.