Třída (programování)

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

  • KRAVAL, Ilja. Analytické modelování informačních systémů pomocí UML v praxi. [s.l.]: Object Consulting, 2010. ISBN 978-80-254-6986-6. S. 140.