PHP/Programmazione/OOP: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 82:
 
se invece vogliamo ottenere la variabile privata, il metodo get_var() accede per noi alla variabile privata e ne restituisce il valore, che verrà salvato nella variabile $variabile_privata.
 
 
===Ereditarietà===
Line 121 ⟶ 120:
===Polimorfismo===
Nell'esempio sopra abbiamo una chiara dimostrazione di polimorfismo, il metodo <code>visualizza()</code> è chiamato più volte ma ogni volta da un risultato differente a seconda che l'oggetto appartenga ad una od un'altra classe. Se richiamo visualizza() con fushi che è un oggetto della classe mele, ecco che visualizzerà "questa è una mela", mentre se lo richiamo con williams. visualizzerà "questa è una pera", il polimorfismo è quindi la capacità di uno stesso metodo di eseguire compiti differenti in base alla classe dell'oggetto di appartenenza, infatti il metodo richiamato è sempre visualizza() ma si comporterà in modo diverso a seconda della classe dell'oggetto.
 
 
 
 
=== Visibilità ===
Line 176 ⟶ 172:
<code> Undefined property: altro::$priv in /path/test.php on line 29, referer: http://localhost/</code><br>
 
La riga 32 mostra che il metodo ristampa può accedere alla variabile protetta prot, questo significa cheinfatti tale variabile è estesa alla classe <code>altro</code>
 
===Incapsulamento===
Si definisce incapsulamento la tecnica di rendere invisibile ed inaccessibile parti di codice non necessario per l'utilizzo di una classe, rendendo accessibili e visibili solo alcuni metodi e alcuni attributi. Si ottiene grazie agli indicatori di visibilità e alle interfacce.
 
===Interfacce===
 
 
 
 
 
 
 
 
 
 
 
 
All'interno della classe, per accedere ai suoi attributi, si usa la variabile <code>$this</code>, che restituisce l'istanza corrente della classe:
<source lang=php>
public $attr;
//...
$this->attr = "abcd"; //imposta l'attributo attr per l'istanza corrente
//...
echo $this->attr; //restituisce attr
//...
</source>
 
=== Lavorare con i metodi ===
Abbiamo detto che un metodo non è altro che una funzione, la quale va dichiarata all'interno della dichiarazione della classe:
<source lang=php>
class Prova {
function somma($a, $b = 3) { //è una funzione come tutte le altre
$c = $a + $b;
return $c;
}
}
 
$ogg = new Prova();
$num = $ogg->somma(5,2); //restituisce 7
</source>
 
Il metodo normalmente agisce sugli attributi della classe; normalmente questo è fatto per esempio dal costruttore.
 
===Incapsulamento===
 
[[Categoria:PHP|Programmazione orientata agli oggetti]]