Il était une fois le procédural
Classiquement, on utilise la "représentation procédurale" qui consiste à séparer le traitement des données des données elles-mêmes. Par exemple, vous avez un système de news sur votre site. D'un côté, vous avez les données (les news, une liste d'erreurs, une connexion à la BDD, etc.) et de l'autre côté vous avez une suite d'instructions qui viennent modifier ces données. Si je ne me trompe pas, c'est de cette manière que vous codez.
Puis naquit la programmation orientée objet
La POO, c'est tout simplement faire de son site un ensemble d'objets qui interagissent entre eux. En d'autres termes : tout est objet.
L'exemple le plus pertinent quand on fait un cours sur la POO est d'utiliser l'exemple du personnage dans un jeu de combat. Ainsi, imaginons que nous ayons un objet Personnage dans notre application. Un personnage a des caractéristiques :
- une force;
- une localisation;
- une certaine expérience;
- et enfin des dégâts.
Toutes ses caractéristiques correspondent à des valeurs. Comme vous le savez sûrement, les valeurs sont stockées dans des variables. C'est toujours le cas en POO. Ce sont des variables un peu spéciales, mais nous y reviendrons plus tard. Mis à part ces caractéristiques, un personnage a aussi des capacités. Il peut :
- frapper un autre personnage;
- gagner de l'expérience;
- se déplacer.
Ces capacités correspondent à des fonctions. Comme pour les variables, ce sont des fonctions un peu spéciales et on y reviendra en temps voulu. En tout cas, le principe est là. En POO, ces informations sont contenues dans ce qu'on appelle des
classes.
Définition d'une classe
Les classes contiennent la définition des objets que l'on va créer par la suite. C'est une entité regroupant des variables et des fonctions (on parle d'attributs et de méthodes). Dans le cas du personnage, nous aurons une fonctionfrapper(). Cette fonction devra simplement modifier la variable $degats du personnage en fonction de la variable $force. Une classe est donc un regroupement logique de variables et fonctions que tout objet issu de cette classe possédera.
Définition d'une instance
Une instance, c'est tout simplement le résultat d'une instanciation. Une instanciation, c'est le fait d'instancier une classe. Instancier une classe, c'est se servir d'une classe afin qu'elle nous crée un objet. En gros, une instance est un objet.
Exemple : création d'une classe
Le schéma de notre classe avec ses attributs et ses méthodes