Nei linguaggi di programmazione orientata agli oggetti, il termine incapsulamento (in inglese encapsulation) può essere usato per riferirsi a due concetti, collegati tra loro ma distinti o, a volte, alla combinazione dei due:
Alcuni ricercatori e universitari utilizzano il primo significato da solo o in combinazione con il secondo come una funzionalità identificativa dei linguaggi di programmazione orientati agli oggetti, mentre altri linguaggi di programmazione che prevedono la chiusura, vedono l'incapsulamento come una funzionalità indipendente dall'orientamento agli oggetti.
La seconda definizione è motivata dal fatto che in diversi linguaggi di programmazione orientata agli oggetti l'occultamento degli elementi non è automatico o può essere scavalcato da altri modificatori di visibilità, pertanto l'occultamento delle informazioni è definito come concetto separato da chi lo preferisce alla prima[1].
Le funzioni dell'incapsulamento sono implementate dalle classi nella maggior parte dei linguaggi di programmazione, tuttavia sono presenti anche altre alternative.