I principi fondamentali della programmazione ad oggetti
Il termine programmazione ad oggetti o Object Oriented Programming (O.O.P.)
indica un paradigma di
programmazione in base al quale una applicazione risulta
costituita da un insieme di oggetti che
interagiscono tra loro, scambiandosi dei messaggi.
Tali oggetti sono creati sulla base di modelli astratti che
prendono il nome di classe.
Uno degli aspetti più importanti della programmazione ad oggetti è la possibilità di creare
nuovi modelli astratti aggiungendo caratteristiche e funzionalità ai
modelli preesistenti, senza la necessità di riscriverne nuovamente il codice, ma riutilizzando
ed
estendendo quanto già creato in precedenza.
La programmazione ad oggetti rappresenta, quindi, a tutti gli effetti, una evoluzione della
programmazione modulare e strutturata, in cui
si evidenzia l'importanza della progettazione nella costruzione di strumenti con caratteristiche
e funzionalità ben definite, facilmente estendibili e modificabili, con impatto minimo sul resto
dell'applicazione.
Quanto detto conduce all'individuazione di una serie di vantaggi
derivanti dalla programmazione
ad oggetti, tra cui:
- la possibilità di concentrarsi, in ogni fase dello sviluppo di un'applicazione, sulle caratteristiche e funzionalità di una determinata entità della realtà di interesse e sulle sue interazioni con le altre entità
- ogni entità agisce in uno spazio isolato e risulta, quindi, di più semplice comprensione e modifica o manutenzione
- la possibilità di riutilizzo di modelli già definiti, per la definizione di nuovi modelli con caratteristiche e funzionalità simili, indirizzando gli sforzi sull'individuazione delle caratteristiche e funzionalità aggiuntive o differenti
- la maggiore chiarezza e manutenibilità del codice risultante
- la minore probabilità di introdurre bachi o malfunzionamenti, a seguito di modifiche al codice esistente
La programmazione ad oggetti si basa su una serie di concetti o principi base tra i quali:
- l'astrazione
- la classe
- gli oggetti
- gli attributi
- i metodi
- l'incapsulamento
- l'information hiding
- l'ereditarietà
- il polimorfismo
Una sintesi grafica di quanto detto è rappresentata nell'immagine seguente:

Nelle sezioni che seguono, andremo ad approfondire nel dettaglio ciascuno dei principi introdotti.