First-class objekt

First-Class Objekt (FCO), česky objekt první kategorie, je perzistentní objekt (entita), který má vlastní identitu, tedy lze se na něj odkazovat. Díky tomu lze takové objekty předávat jako parametry, používat jako návratové hodnoty funkcí nebo přiřazovat do proměnných. Typicky jsou to všechny objekty uložené aplikací.

Objektu určitého datového typu v nějakém programovacím jazyce náleží označení first class objekt, když platí, že může být použit jako:

  • hodnota proměnné
  • vstup procedury
  • hodnota vracená procedurou
  • člen datového agregátu
  • anonymní (nepojmenovaný)

Například má-li datový typ seznam být objektem první kategorie, musí být možné uložit seznam do proměnné, zadat ho jako vstupní parametr do procedury, sestrojit proceduru, která bude vracet seznam, zadat seznam jako prvek jiného seznamu a také pracovat v programu s konkrétním seznamem, který nemá žádné jméno. V jazyce, který toto splňuje, je seznam objektem první kategorie.

Ideálně by proměnné všech datových typů měly být first class, tj. být první kategorie. Je přitom důležité si uvědomovat, že označení first class náleží k datovému typu, nikoli ke konkrétní hodnotě.