La programmazione orientata agli oggetti è uno stile di programmazione che è riciclabile e facile da sviluppare e mantenere. Un singolo oggetto, creato da una classe o prototipo, può essere riutilizzato per molteplici scopi. Un vantaggio disponibile per i programmatori orientati agli oggetti è l'uso dell'incapsulamento, che impedisce la manipolazione accidentale consentendo l'impostazione di restrizioni di accesso su parti di un oggetto. Poiché il codice orientato agli oggetti è facile da navigare, gli aggiornamenti sono molto più rapidi.
Gli oggetti hanno molte caratteristiche che li rendono facilmente associabili alle attività quotidiane. Gli oggetti eseguono azioni conosciute come metodi. A seconda del codice, un oggetto può ereditare azioni e altre proprietà da una gerarchia di classi o prototipi sempre più astratti. Ad esempio: un oggetto barboncino e un oggetto bulldog potrebbero entrambi ereditare la capacità di abbaiare dalla classe del cane. La classe del cane potrebbe ulteriormente ereditare proprietà dalla classe dei mammiferi e così via.
La programmazione basata su classi e prototipi sono due tipi di programmazione orientata agli oggetti. Un oggetto in programmazione basata su classi viene creato dalla sua classe, che è il progetto originale di un oggetto codificato dallo sviluppatore. Gli oggetti nella programmazione basata su prototipi vengono creati direttamente dallo sviluppatore e gli oggetti duplicati vengono creati da questo oggetto prototipo.
Poiché la programmazione orientata agli oggetti è riciclabile, uno sviluppatore è in grado di prendere il codice da un programma e inserirlo facilmente in un altro programma senza doversi preoccupare dei principali cambiamenti.