Imaginons, par exemple, que l'on souhaite généraliser le compteur 5 bits et construire un compteur n bits.
Ce compteur a un état (un entier) et a un champ n de type byte
qui représente le nombre de bits. Si on peut décider arbitrairement que l'état est initialisé à zéro, quelle
doit être la valeur initiale de n ? En fait, cela dépend du compteur que l'on veut
réaliser, il faut donc différer le choix lors de la construction de l'objet.
Voici alors une réalisation partielle possible pour la classe CompteurNBits.
 |
class CompteurNBits {
/** 0 ≤ etat < 2n */
int etat = 0;
/** 0 < n < 31 */
byte n;
/** Le Constructeur
* @param valeur nombre de bits pour coder l'état, 0 < valeur < 31
*/
CompteurNBits(byte valeur) {
this.n = valeur;
}
} |
On remarque que n doit être supérieur à 0
(qu'est-ce qu'un compteur 0 bits) et inférieur à 31, car on utilise le
type int pour coder l'état est la valeur limite est
231-1.