Nella parte precedente abbiamo visto che cos’è il paradigma object oriented, cosa sono le classi e cosa sono gli oggetti, abbiamo inoltre visto che le classi sono composte da proprietà e metodi. Riepilogando velocemente il paradigma object oriented o programmazione ad oggetti è un paradigma di programmazione che permette la creazione di oggetti che interagiscono tra loro indipendenti gli uni dagli altri. La programmazione ad oggetti è composta da classi ed oggetti. Le classi sono il modello e gli oggetti sono la realizzazione pratica delle classi. Le classi sono composte da proprietà e metodi, le proprietà sono le caratteristiche e i metodi sono le azioni che si possono esercitare sulle proprietà. Prendiamo l’esempio di una classe rettangolo in cui si possono avere varie proprietà tipo la dimensione della base e la dimensione dell’altezza, l’area e il perimetro, e a queste proprietà si possono applicare varie azioni quali visualizzare o modificare il valore della base e dell’ altezza, si possono usare questi valori per calcolarne l’area e il perimetro.
Esempio della realizzazione di una classe
class Rettangolo{ /* Proprietà */ private $base; private $altezza; /* Costruttore che contiene i parametriti per costruire l'oggetto*/ public function __construct($base, $altezza) { /* Assegno alle variabili i valori passati per costruire l'oggetto*/ $this->base = $base; $this->altezza = $altezza; } /* Metodi */ /* Restituisco il valore della base */ public function getBase() { return $this->base; } /* Restituisco il valore dell'altezza */ public function getAltezza() { return $this->altezza; } /* Calcolo l'area */ public function getArea() { return $this->base * $this->altezza; } /* Calcolo il perimetro */ public function getPerimetro() { return (2 * $this->base) + (2 * $this-> altezza); } }
Per creare un oggetto si usa la parola riservata new davanti al nome della classe
new Rettangolo(20, 10);
Ecco istanziata la classe Rettangolo. Quando si crea un oggetto esso lo si salva in una variabile in modo da poter creare più istanze di quella classe con magari proprietà diverse.
rettangolo1 = new Rettangolo(5,15); rettangolo2 = new Rettangolo(13,30); rettangolo3 = new Rettangolo(25,18);
Ecco creati tre oggetti di tipo Rettangolo.
Per creare delle proprietà bisogna definire un’indicatore di visibilità che può essere public, private o protected seguito dal nome della proprietà e da un eventuale valore, il nome della proprietà va preceduto dal simbolo $.
// Esempio proprietà private $base; public $altezza = 10; protected $area;
Per recuperare il valore di una proprietà si fa nel seguente modo.
$altezza = rettangolo->altezza;
Indicatori di visibilità
Gli indicatori di visibilità sono delle parole riservate che hanno lo scopo di definire l’ambito di visibilità di una proprietà o di un metodo, essi sono tre e sono public, private e protected
public: I membri (proprietà o metodi) dichiarati public sono accessibili sia dall’interno che dall’esterno della classe e dalle classi derivate da essa;
private: possono essere utilizzati soltanto all’interno della classe stessa;
protected: possono essere utilizzati all’interno della classe stessa e all’interno delle classi derivate, ma non sono accessibili dall’esterno della classe.
I metodi
I metodi sono semplicemente delle funzioni appartenenti a delle classi atte a gestirne le azioni.
Prendendo sempre come esempio la classe Rettangolo un metodo si definisce nel seguente modo:
/* Calcolo l'area */ public function getArea() { return $this->base * $this->altezza; }
Per definire un metodo si usa un’indicatore di visibilità (se l’indicatore di visibilità viene omesso di default è impostato a public), seguito dalla parola riservata function e dal nome del metodo, dopo il nome del metodo ci va una coppia di parentesi tonde dove all’interno ci potranno essere eventuali argomenti, a seguire ci saranno una o più istruzioni racchiuse tra parentesi graffe dette corpo della funzione.
Per richiamare il precedente metodo si usa il nome dell’oggetto seguito da un trattino e un simbolo di maggiore/minore (->) tipo una freccia (In altri linguaggi la freccia è sostituita da un punto) e infine il nome del metodo interessato con una coppia di parentesi tonde dove all’interno andranno messi gli argomenti necessari.
echo rettangolo1->getarea(); echo "<br>"; echo rettangolo1->getarea(); echo "<br>"; echo rettangolo1->getarea(); echo "<br>";
Se il metodo non necessita di argomenti le parentesi tonde andranno lasciate vuote ma vanno sempre comunque indicate.
I metodi setter e getter
In PHP è convenzione mettere il suffisso set davanti al nome di un metodo nel caso in cui si voglia cambiare o definire il valore di una proprietà.
Mettere il suffisso get davanti al nome del metodo nel caso in cui il metodo voglia mostrare il valore di una proprietà. questo sistema non è un obbligo ma una regola convenzionale per dare un’idea a primo occhio della funzione del metodo.
public function getBase() { return $this->base; } public function setAltezza($valorealtezza) { $this->altezza = $valoreAltezza; }
In questo articolo abbiamo visto come definire un metodo, abbiamo richiamato velocemente gli indicatori di visibilità e parlato dei metodi setter e getter, nel prossimo andremo spiegare l’uso degli argomenti di un metodo, il perché esistono e a cosa servono.
SviluppoMania
Stay Tuned