Tří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. 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
Literatura