Nella object-oriented programming, l'oggetto viene definito come un elemento modulo contenente dati e operazioni, che è capace di "comunicare" e interfacciarsi con altri oggetti.
In particolare, i dati e le loro rispettive caratteristiche vengono chiamati attributi (o propietà), mentre le azioni che compie si chiamano metodi (o operazioni). Un aspetto fondamentale dell'oggetto è che l'interfaccia (ovvero le funzioni disponibili) è pubblica e visibile, mentre l'implementazione della struttura interna dell'oggetto viene resa nascosta e inaccessibile; ciò viene chiamato information hiding o incapsulamento.