Classes Et Objets

Vous êtes ici : >> PHP / Classes Et Objets
Temps d'étude : 45 min. Niveau : Moyen.
Tags : Classes Et Objets
Fichier(s) utile(s) pour ce cours : /

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 :

explication PHP

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).

explication PHP

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.

explication PHP

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.