Die Bezeichnung komplexe Klassen wird in der objektorientierten Programmierung (OOP) verwendet. Darunter versteht man eine Klasse, für die ein oder mehrere Attribute mit Objekttyp definiert sind. Ein Objekt einer komplexen Klasse, ein sogenanntes komplexes Objekt, besteht demnach aus ein oder mehreren Objekten anderer Klassen, sogenannten Subobjekten. Ein komplexes Objekt kann beliebig viele Subobjekte besitzen, da durch einen Objekttyp u.a. auch Listen, Mengen oder Arrays von Objekten eines bestimmten Typs realisiert werden können. Als ein komplexes Objekt bezeichnet man auch die Instanz einer komplexen Klasse.