PHP: la differenza tra classi e oggetti nel paradigma object-oriented

PHP: la differenza tra classi e oggetti nel paradigma object-oriented

Classi e oggetti sono due concetti distinti ma interdipendenti non solo in PHP ma anche in altri linguaggi orientati agli oggetti.

PHP non nasce come linguaggio orientato agli oggetti ma aggiunge il supporto a questo concetto solo in una seconda fase. Attualmente PHP è un linguaggio che dispone di potenti caratteristiche per la programmazione orientata agli oggetti. Cay Horstmann, esperto di Java e autore di fondamentali pubblicazioni, fa questo paragone: classi e oggetti hanno la stessa relazione che intercorre tra gli stampi per i dolci e i dolci stessi. Egli paragona le classi agli stampi e gli oggetti ai dolci. In altre parole, una classe è il modello a cui fa riferimento un oggetto.

Un oggetto è la realizzazione concreta di una classe. Quando usiamo l'operatore new creando un'istanza di una classe non facciamo altro che tirare fuori il nostro dolce dallo stampo. Per esempio, con una classe come questa:


class Test
{
  public $property;
  
  public function __construct($prop)
  {
    $this->property = $prop;
    
  }
}

è un modello che ha una proprietà pubblica chiamata property. Al momento della creazione dell'oggetto, il metodo __construct() assegnerà a questa proprietà un valore passato come argomento al costruttore. Dal modello si passa alla sua concretizzazione, perchè fino a quel momento la proprietà non aveva alcun valore utile:


$myTest = new Test('Test');

Ora la nostra proprietà ha un valore e possiamo accedervi:


echo $myTest->property; // 'Test'
Torna su