La Programmazione Orientata agli Oggetti (OOP, Object-Oriented Programming) è un paradigma di programmazione che modella il software come una collezione di entità interagenti chiamate oggetti. Ogni oggetto rappresenta un’istanza di una classe, che funge da modello (blueprint) definendo attributi (dati) e metodi (funzioni/comportamenti).
L’ingegneria del software basata su OOP si fonda su quattro pilastri fondamentali:
- Incapsulamento: nasconde i dettagli interni di un oggetto all’esterno, esponendo solo un’interfaccia controllata. Protegge l’integrità dei dati.
- Astrazione: semplifica la complessità focalizzandosi sugli aspetti rilevanti di un’entità, ignorando i dettagli implementativi irrilevanti.
- Ereditarietà: permette a una classe di derivare proprietà e metodi da un’altra classe (gerarchia), favorendo il riutilizzo del codice.
- Polimorfismo: permette a entità diverse di rispondere allo stesso “messaggio” o chiamata di metodo in modi differenti (es. un metodo
disegna()che funziona sia per un cerchio che per un quadrato).
L’OOP (implementata in linguaggi come Java, C++, Python, C#) ha permesso di gestire la crescente complessità dei sistemi software moderni, rendendoli più modulari, manutenibili ed estensibili.