Programmation/Programmation orientée objet/Classes et objets

Un objet rassemble ce que permet la programmation impérative en un objet. C'est à dire qu'un objet rassemble plusieurs variables (comme une structure) et les opérations qui leur sont applicables en une seule entité.

Un objet est assimilé à une variable, et une classe est assimilé à un type (un modèle d'objet).

Une classe est la définition d'un nouveau type de variable particulier. Ce type est similaire à une structure ou enregistrement. Il rassemble plusieurs champs de données.

Exemple en Java :

  • Une classe "Livre" rassemblant son titre, son auteur, son année de parution et son nombre de pages.
public class Livre
{
    String titre;
    String auteur;
    int annee;
    int pages;
}

Ce type peut également définir des fonctions qui s'appliqueront à celui-ci. Les fonctions définies dans une classe sont appelées "méthodes".

Exemple (suite du précédent) :

  • Une méthode "obtenirInformation" retourne une chaîne contenant la valeur des champs de l'objet courant.
public class Livre
{
    String titre;
    String auteur;
    int annee;
    int pages;

    // une méthode de la classe Livre :
    String obtenirInformation()
    {
        return
            "Le livre \""+titre+"\" écrit par "+auteur+
            " paru en "+annee+" fait "+pages+" pages.";
    }
}

En résumé, une classe rassemble les données et les opérations qui leur sont applicables en une seule définition de type.

Un objet est une instance d'une classe. On peut assimiler une classe à un type, et un objet à une variable.

Créer un objet à partir d'une classe est une opération appelée "instanciation".

Exemple :

Livre monLivre;
  • En Java et en C#, une variable d'une classe donnée n'alloue aucun espace mémoire pour l'objet car il s'agit en fait d'une référence (similaire à un pointeur). Il faut donc explicitement allouer un objet :
Livre monLivre = new Livre();