Introduction aux objets
Avant de s'attaquer aux données de type objet, on va se faire une idée intuitive de cette notion grâce à une analogie avec un exemple concret de la vie de tous les jours. Le concept d'objet est très important et va nous suivre à partir de maintenant jusqu'à la fin du livre et il est donc important de bien le comprendre.
Qu'est ce qu'un objet ?
Prenons par exemple un GSM, il s'agit bel et bien d'un objet que vous avez déjà très certainement pu voir et même manipuler. La figure 1 en montre un parmi tant d'autres.
Ce GSM possède une certaine marque, un modèle, un numéro de série, une couleur, un niveau de charge de la batterie, un niveau de luminosité de l'écran, etc. Ces caractéristiques sont appelées attributs de l'objet. Chacun de ceux-ci possède une valeur : la marque est Sony Ericsson, le modèle est S500i, etc. Chaque objet possède des valeurs pour ses différents attributs qui font que cet objet est unique; l'ensemble des valeurs des attributs d'un objet est appelé l'état de l'objet. La figure 2 montre deux objets de type GSM, chacun avec les valeurs des différents attributs. Alors que les attributs sont communs aux deux GSMs, les valeurs de ces derniers peuvent être différentes.
De plus, ces GSMs offrent toute une série de fonctionnalités : on peut composer un numéro et effectuer un appel, recevoir un appel, envoyer un SMS, écouter un fichier MP3, consulter le niveau de charge de la batterie, jouer à un jeu, prendre une photo, surfer sur Internet, ajouter les coordonnées d'un contact, etc. Il s'agit donc d'opérations que l'on peut effectuer grâce à l'objet, et elles sont appliquées sur l'objet.
Un objet est donc une entité qui possède des attributs auxquels sont associés des valeurs et offre des fonctionnalités. Chaque objet est unique (mon GSM n'est ni le votre, ni celui de la voisine, ni celui de personne d'autre) et possède son propre état. Mais plusieurs objets différents peuvent avoir exactement le même état et peuvent également appartenir à une même famille, une classe d'objets. Si on prend par exemple la classe des GSM identifié uniquement par une marque et un modèle, il y a clairement plusieurs objets de marque Sony-Ericsson et de modèle S500i qui existent dans le monde.
Et en Java ?
Les données qu'on a manipulées jusqu'à présent sont des nombres entiers et flottants, des caractères et des booléens; il s'agit de données de type primitif (int
, double
, char
, boolean
...). En Java, il y a un deuxième type de donnée qui est le sujet de ce chapitre : les données de type objet.
Contrairement aux données de type primitif qui représentent des choses simples (un entier, un caractère, un booléen...), les objets représentent des choses plus spécialisées, plus complexes comme une date, une image, un fichier, une personne, etc. Un objet Java possède également des attributs et des fonctionnalités. Ces dernières permettent d'effectuer des opérations sur l'objet, tout comme on en faisait déjà avec les types primitifs (addition, soustraction...).
Classe Java
Comment sont définis ces objets, leurs attributs et leurs fonctionnalités ? Chaque objet est décrit par une classe. Il s'agit du plan à partir duquel on va pouvoir construire des objets. On a déjà rencontré le concept de classe en Java, mais on ne les a utilisée que pour définir des programmes en y définissant une méthode public static void main (String[] args)
, pour l'instant. Dans ce chapitre, on va d'abord voir comment créer et manipuler des objets et ce n'est que dans le chapitre suivant qu'on verra comment définir ses propres classes et objets. Pour l'instant, retenez simplement qu'une classe est utilisée pour définir un programme ou des objets, on verra les détails au chapitre suivant.