La programmazione orientata agli oggetti, spesso indicata semplicemente con la sigla OOP (Object Oriented Programming), è un paradigma di progettazione software che permette di definire oggetti in grado di interagire gli uni con gli altri attraverso un sistema di scambio di messaggi. La programmazione ad oggetti è particolarmente adatta nei contesti in cui si possono definire delle relazioni di dipendenza tra i diversi concetti da modellare (contenimento, uso o specializzazione). La programmazione a oggetti è tuttora il modello di programmazione più diffuso al mondo, tuttavia non è più il più recente, negli ultimi anni si è infatti affermato il paradigma Aspect Oriented Programming (AOP). Tra i linguaggi di programmazione a oggetti oggi più diffusi troviamo il linguaggio Java, il linguaggio C++, il linguaggio C# e il linguaggio .NET (Visual Basic).

Tra i vantaggi derivanti dall’uso della programmazione orientata agli oggetti troviamo:

  • Gestione e manutenzione facilitata di progetti software di grandi dimensioni;
  • Modularità e riuso del codice favoriti dell’organizzazione del codice in classi.

L’Object Orientation non è semplicemente un modo di programmare, è innanzitutto un modo di pensare e di progettare il software. Alcune delle caratteristiche di questo paradigma sono state derivate dal precedente paradigma di programmazione modulare, per questo motivo dedicheremo il prossimo capitolo all’analisi di alcuni concetti utili.