Les enumérations

Structure de données enumérées

Ce site ne sera plus alimenté de contenu après août 2014. Tous les nouveaux articles seront redigés pour www.waitingforcode.com

Java a introduit les énumérations dans sa version 1.5. Les développeurs PHP trouveront une correspondance avec les tableaux. Cependant, les possibilités offertes par Java sont beaucoup plus larges.

Une énumération en Java est représentée par le mot-clé enum. Elle ressemble plus à une classe qu'un type primitif. Elle hérite de la classe java.lang.Enum et contient une liste des sous-objets dont le comportement peut être librement adapté. Regardons cela sur un exemple :

afficher le code

On verra le résultat suivant sur l'écran :

Elodie's note is 20 Anne found

Qu'est-ce qu'on constate ? On remarque tout de suite que la construction de l'enum ressemble énormément à celle d'une classe. L'énumération possède bien un constructeur ainsi que d'autres méthodes auxquelles on peut accéder depuis son extérieur. Il faut bien noter que le constructeur de l'enum doit être privé. Grâce à cela, les constantes incluses au début (en occurence : ELODIE("Elodie", 20), MICKAEL("Mickael", 10), etc.) sont tout de suite initialisées et il est impossible d'en créer d'autres.

Les avantages d'utiliser enum en Java

Quels sont donc les points positifs de l'utilisation du type enum ? Tout d'abord il est type-safe. Cela veut dire qu'il possède son propre espace de nom et ne peut pas contenir une autre valeur que celles spécifiées pendant l'initialisation.

Un autre avantage est la possibilité d'utiliser les énumérations dans les constructions switch-case, tout comme les int.

Contrairement aux tableaux, enum est un type beaucoup plus puissant. Comme déjà évoqué, il ressemble à une classe. Il possède donc un constructeur et d'autres méthodes qui permettent une manipulation facile des valeurs. Il peut également surcharger des fonctions de la classe Object comme par exemple toString().

L'énumération peut ausssi implémenter des interfaces (par exemple Runnable) ainsi que contenir des méthodes abstraites.

Constatons tout ces avantages sur notre premier exemple largement modifié :

afficher le code

Voici le résultat :

Elodie's note is 20 Anne found Is Mickael a women ? false Is Elodie a women ? true Pupils enum (Elodie)is running

La définition des constantes a changé. Elle a été enrichie par les alocades qui contiennent la méthode isWomen surchargée. On remarque également la présence de l'implémentation de l'interface Runnable qui permet de lancer l'enum dans un nouveau Thread.

télécharger les fichiers d'exemple
Bartosz KONIECZNY Informations sur le langage

Une question ? Une remarque ?

*

*

Un conseil PHP

Comment créer un signature key pour OAuth

Un signature key est l'un des deux composants qui constituent la signature de la requête OAuth. Il est composé de : - la clé secrète que le fournisseur (Google, Yahoo...) attribue au client, elle doit être toujours présente dans le signature key - le ticket secret qui est renvoyé à de différentes étapes de l'échange avec le web service du fournisseur; s'il est absent (comme lors de la récupération du ticket de la requête), il faut alors passer une chaîne de caractères vide Les deux paramètres doivent être encodés. Une méthode pour générer le signature key peut se présenter ainsi :

function setSignatureKey($tokenSecret)
{
  return str_replace('%7E', '~', rawurlencode($this->userData['secret'])).'&'.str_replace('%7E', '~', rawurlencode($tokenSecret));
}