Negli esempi dei post di questo blog, ho intenzione di servirmi il più possibile della OOP.
Se non hai mai utilizzato prima un linguaggio di programmazione object-oriented, hai bisogno di apprendere i concetti base prima di poter iniziare a scrivere del codice. Con questo post e i successivi 3 voglio fornire una introduzione ai concetti di oggetti, classi, ereditarietà, interfacce. Ogni argomento mostra come questi concetti siano in relazione con il mondo reale, mentre si fornisce un'introduzione alla sintassi del linguaggio di programmazione PHP.Cos'è un Oggetto?
Gli oggetti sono la chiave per comprendere la tecnologia object-oriented. Guardati intorno ora e vedrai molti esempi di oggetti del mondo reale: un cane, la scrivania, la televisione, una bicicletta.
Gli oggetti del mondo reale condividono due caratteristiche: tutti hanno stato e comportamento. I cani hanno uno stato (nome, colore, fame, razza) e comportamento (abbaiare, agitare la coda, riportare). Anche le biciclette hanno lo stato (marcia corrente, pedalata, velocità) e comportamento (cambia marcia, cambia pedalata, frenare). Identificando lo stato e il comportamento degli oggetti del mondo reale è un buon modo di iniziare a pensare in termini di programmazione object-oriented.
Prenditi qualche istante per osservare gli oggetti del mondo reale vicini a te. Per ogni oggetto puoi porti due domande: “In quali possibili stati può essere quest’oggetto?” e “Quali possibili comportamenti può realizzare?”. Prova ad annotare le tue osservazioni. Noterai che gli oggetti del mondo reale differiscono in complessità; la lampada sulla scrivania potrebbe avere due soli possibili stati (accesa o spenta) e due possibili comportamenti (accendi e spegni), ma una radio può avere molteplici stati (accesa, spenta, volume, stazione) e comportamenti (accendi, spegni, aumenta volume, diminuisci volume, cerca, cerca tutto e sintonizza). Puoi anche notare che alcuni oggetti ne contengono altri. Tutte queste osservazioni si traducono nel mondo della programmazione object-oriented.
![]() |
Un oggetto software |
Considera per esempio una bicicletta:
![]() |
Un modello per Bicicletta come oggetto software |
Realizzare codice in oggetti software individuali fornisce alcuni benefici, tra cui:
- Modularità: il codice sorgente per un oggetto può essere scritto e mantenuto indipendentemente dal codice sorgente di altri oggetti. Una volta creato, un oggetto può essere facilmente trasferito all'interno del sistema.
- Nascondere l’informazione: attraverso l’interazione con i soli metodi dell’oggetto, i dettagli della sua implementazione interna restano nascosti al mondo esterno.
- Riuso del codice: se un oggetto esiste già (per esempio scritto da un altro sviluppatore), puoi utilizzare quell'oggetto nel tuo programma. Questo permette agli specialisti di implementare/testare/debuggare oggetti complessi e con compiti specifici, che possono poi essere eseguiti nel proprio codice.
- Facile debugging e integrazione: se un oggetto particolare mostra di avere dei problemi, puoi semplicemente rimuoverlo dalla tua applicazione e inserire un oggetto differente al suo posto. Ciò e simile alla riparazione di problemi meccanici nel mondo reale. Se si rompe un bullone, lo sostituisci, non cambi l’intera macchina.