Třída (programování)
Author
Albert FloresTřída je základní konstrukční prvek objektově orientovaného programování sloužící jako předpis pro vznik objektu jako instance třídy. Může odpovídat pojmům z reálného světa, tj. v informačním systému realizovaném programem psaném v objektově orientovaném jazyce mohou existovat třídy Zákazník, Objednávka, Faktura apod. Třída definuje vlastnosti (atributy) a metody (též funkce) objektů, které při běhu programu vzniknou (též instancí). Hodnoty vlastností (atributů) se mohou u jednotlivých instancí objektů odlišovat (každá instance Objednávky může mít jinou celkovou cenu), na každém objektu (vzniklém z jedné třídy) můžeme zavolat (použít) shodnou sadu metod.
UML zavádí dva typy vztahů mezi třídami - asociaci a generalizaci. * asociace vyjadřuje budoucí vztahy mezi instancemi, které ze tříd (spojených asociací) vzniknou * generalizace (též dědičnost) vyjadřuje vztah mezi třídami, který se při běhu programu projeví v okamžiku instancializace (vzniku objektu)
Abstraktní třída
Abstraktní třída neumožňuje vytvářet objekty (instance). Slouží jako předpis (metod a atributů) pro další (konkrétní) třídy odvozené pomocí dědičnosti. +more Metody abstraktní třídy mohou být * implementované, tj. ve třídě potomka budou přímo použitelné díky dědičnosti; * neimplementované, předepisující pouze hlavičky (název, argumenty a návratové typy), jejichž implementace je vyžadována ve třídě potomka. Lze tedy říci, že se jedná o šablonu pro vytváření specifické skupiny tříd.
Příklad třídy v jazyce Java
public class Clovek { /*atributy jméno a věk*/ private String jmeno; private int vek;
/*konstruktor - při instancializaci, tj. vzniku objektu, musí být zadány hodnoty atributů jméno a věk*/ public Clovek(String jmeno, int vek) { this.jmeno = jmeno; this.vek = vek; }
/*funkce resp. metody, které bude možné na instanci - objektu - použít (zavolat)*/ public String getJmeno { return jmeno; }
public int getVek { return vek; }
public void udelejUkoly { ... }
public void zavriOkno { ... } }
Související články
Instance třídy * Objektově orientované programování * Interface (programová konstrukce)