Ein First-Class-Objekt (englisch first-class object, deutsch etwa „Objekt erster Klasse“) bezeichnet in der Programmierung von Computersystemen ein Objekt, das als Übergabeparameter oder Rückgabewert einer Funktion oder Prozedur auftritt bzw. einer Variablen zugewiesen werden kann.
Der Begriff wurde von Christopher Strachey im Kontext functions as first-class citizens Mitte der 1960er Jahre geprägt.
Ein Objekt ist von erster Klasse, falls es die folgenden Bedingungen erfüllt:
Der Begriff Objekt muss dabei nicht im engeren Sinne als ein Objekt einer objektorientierten Programmiersprache verstanden werden. In den meisten Programmiersprachen sind insbesondere die Objekte der elementaren Datentypen, z. B. Ganzzahl- und Gleitkommaobjekte, immer erster Klasse.