Classes Et Objets
Classes & Objets
Les classes et objets sont avant tout un type de données regroupant des variables (appelées propriétés ou attributs) et des fonctions utilisateurs (appelées méthode).
On parle de programmation orientée objet lorsque leur utilisation est généralisée à tout un site et que la conceptualisation suit cet état d'esprit.
Le vocabulaire diffère légèrement en Programmation Orientée Objet, nous ne parlerons plus de fonctions mais de méthodes, nous ne parlerons plus de variables mais d’attributs (ou propriétés).
Créons une classe nommée
Voiture
:
entrainement.php
<?php
class Voiture
{
public $couleur = "rouge";
public $annee = 2010;
public function demarrer()
{
return "Je démarre comme ça...";
}
}
Une classe est donc un regroupement de propriétés (variables) et de méthodes (fonctions) sur un sujet en particulier.
Les variables sont plutôt présentes pour décrire le sujet et les méthodes pour indiquer le comportement du sujet.
Nous avons 2 propriétés qui sont
$couleur
et
$annee
, et 1 méthode qui est
demarrer()
Le mot-clé
public
permet de préciser le niveau de visibilité des éléments (public = visible de partout).
3 niveaux de visibilité existent : public, protected et private mais il n'est pas nécessaire de les expliquer en détail pour l'instant (ce n'est pas indispensable pour comprendre cet exemple).
Pour s'en servir, nous allons créer (instancier) un objet (issue de la classe Voiture).
entrainement.php
<?php
class Voiture
{
public $couleur = "rouge";
public $annee = 2010;
public function demarrer()
{
return "Je démarre comme ça...";
}
}
$voiture = new Voiture;
echo 'couleur de la voiture : ' . $voiture->couleur . '
';
echo 'annee de la voiture : ' . $voiture->annee . '
';
echo 'manière dont la voiture démarre : ' . $voiture->demarrer() . '
';
Résultat
couleur de la voiture : rouge
annee de la voiture : 2010
manière dont la voiture démarre : Je démarre comme ça...
Quelques Explications :
new
est un mot-clé permettant d'instancier une classe et donc de produire un objet.
En programmation php, on dit alors que
$voiture
représente un objet (en réalité c'est une référence qui pointe vers un objet en espace mémoire, même principe que pour une
variable).
La fléche "->" permet d'atteindre une propriété ou une méthode de l'objet
$voiture
issue de la classe
Voiture
.
Qu'est-ce qu'une classe ?
Les classes sont présentes pour « fabriquer » des objets.
Dans notre cas, la classe c'est un peu comme le plan de construction d'une voiture :

La classe Voiture n'est pas une voiture, c'est juste son plan de construction.
Un plan de construction voiture (
classe Voiture) peut produire et créer plusieurs voitures (
objet $voiture).
Qu'est-ce qu'un objet ?
En programmation orientée objet, un objet est créé sur le modèle de la classe à laquelle il appartient.
Dans notre cas, l'objet c'est la voiture.
L'objet est une application concrète du plan, c'est une représentation de la classe.
Pour se servir du code déclaré dans une classe, il faut (dans la majorité des cas) créer un objet.
Développement Orienté Objet
Le développement Orienté Objet ne se résume pas qu'à élaborer quelques classes et créer des objets.
Regrouper son code aide à y voir clair, mais si l'on retrouve du code procédural dans les méthodes d'une classe, ce ne sera qu'un mi-chemin entre le développement procédural et le développement orienté objet.
L'orienté objet c'est avant tout une conceptualisation différente. Nous verrons plus tard comment aborder le code.