Con questa lezione cominceremo la trattazione dellultimo
tipo di dato disponibile per un programmatore PHP: gli oggetti.
Prima di vedere come PHP tratta e usa classi e oggetti,
analizziamo gli aspetti generali di questo itpo di programmazione,
focalizzando la nostra attenzione sugli aspetti salienti e cercando
di individuare i vantaggi apportati dallutilizzo di tali strumenti.
Per maggiori approfondimenti riguardo la programmazione orientata
agli oggetti si faccia riferimento alle lezioni 4÷15 del corso di
Java presente nel nostro sito.
La programmazione orientata agli oggetti (OOP) non è uno stile per la scrittura di programmi, bensì un approccio o meglio una filosofia di programmazione.Essa risulta del tutto differente dalla metodologia utilizzata con il linguaggi di tipo strutturale.
Infatti, chi programma utilizzando Linguaggio C, Pascal, Basic
o qualsiasi altro linguaggio sviluppato per un approccio classico
alla programmazione, scrive il suo codice pensando a ciò che
accade quando esso sarà eseguito. Invece, chi utilizza un
linguaggio di programmazione orientato agli oggetti (quali C++,
Delphi o Java) concentra la sua attenzione sui dati, ovvero sugli
oggetti, che vengono influenzati dallesecuzione del programma.
Lutilizzo di questa tecnica di programmazione porta notevoli
vantaggi dal punto di vista della leggibilità del codice, introducendo
un livello di astrazione maggiore, nonché rende più agevole la stesura
di applicazioni di grandi dimensioni da sviluppare in team grazie
alla possibilità di utilizzare interfacce comuni.
Questi benefici hanno reso la programmazione ad oggetti di
moda facendo sì che nascessero nuovi linguaggi pensati appositamente
per la nuova filosofia di programmazione (è il caso di Java). Anche
linguaggi più stagionati sono stati attrezzati dalle
software house di appartenenza in modo tale da diventare atti allutilizzo
degli oggetti. Tuttavia, molto spesso, tali linguaggi hanno continuato
a supportare anche la programmazione strutturata (come il C++),
diventando linguaggi di programmazione ibridi.
Anche PHP, pur essendo di recente concezione e realizzazione, supporta
programmi con una struttura ibrida. Ciò rende il programmatore in
grado di utilizzare lapproccio più aderente al suo stile,
alle sue abitudini e alla sua forma mentis.
Tutti i linguaggi OOP si basano su due principi fondamentali che
guidano verso una corretta implementazione di un programma ad oggetti.
Questi sono:
Incapsulazione;
Ereditarietà;
Incapsulazione
Lincapsulazione è il meccanismo che lega tra loro il codice
e i dati che questo manipola e assicura entrambi dalle interferenze
esterne e dagli abusi. Può essere pensato come un involucro che
impedisce un accesso arbitrario ai dati al suo interno da parte
di codice al suo esterno. Laccesso ai dati e al codice di
un oggetto è definito tramite rigide interfacce. La base per lincapsulazione
è la classe. Una classe definisce i dati ed il codice di
ogni oggetto ad essa appartenente. La classe può essere quindi pensata
come il modello di riferimento per un oggetto. Per questo motivo
si fa riferimento agli oggetti chiamandoli anche istanze di una
classe.
Al momento della creazione di una classe vengono specificati quali
sono i dati presenti negli oggetti di quella classe e il codice
che li manipola. Le variabili presenti in una classe vengono chiamate
variabili membro o variabili istanza o attributi,
mentre il codice che opera su questi dati costituisce i metodi
membro o semplicemente i metodi della classe.
Se, per esempio, pensiamo alla classe Cellulare essa potrà
essere presentare diverse istanze (ogni ditta avrà il proprio modello
di cellulare) pur mantenendo sempre la stessa interfaccia verso
lesterno. Questo ci permetterà di poter utilizzare tutti i
cellulari e non un solo modello. Ogni cellulare avrà alcuni attributi:
una batteria, un display, una memoria,
Questi ci saranno
accessibili non direttamente, ma solo attraverso alcuni metodi (per
esempio premendo un pulsante per accedere alla rubrica). In ogni
caso non dovremo mai preoccuparci di ciò che avviene realmente nel
telefono quando lo stiamo utilizzando. Il fatto che verranno attivati
alcuni transistor o che altri verranno interdetti ci sarà mascherato
dallinterfaccia che il telefono mostrerà verso lesterno.
Spiegare i principi dellereditarietà sarà lobiettivo
della prossima puntata del nostro corso.
Torna all'indice Generale del corso di Corso di PHP di Software Planet