Corso di PHP

Oggetti I

 

Con questa lezione cominceremo la trattazione dell’ultimo 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 dall’utilizzo 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 dall’esecuzione del programma.
L’utilizzo 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 all’utilizzo 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 l’approccio 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
L’incapsulazione è 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. L’accesso ai dati e al codice di un oggetto è definito tramite rigide interfacce. La base per l’incapsulazione è 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 l’esterno. 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 dall’interfaccia che il telefono mostrerà verso l’esterno.

Spiegare i principi dell’ereditarietà sarà l’obiettivo della prossima puntata del nostro corso.

 

Torna all'indice Generale del corso di Corso di PHP di Software Planet