QUESTION 1 : Construire une classe de nom “CompteurInstance” qui contient une méthode qui retourne le nombre d’instances de la classe à tout moment d’une session Java.
QUESTION 2 : sous Bluej créer une classe de test permettant de vérifier le bon fonctionnement du compteur.
suggestions :
- une solution simple est d’utiliser une variable static, donc qui sera partagées par toutes les instances de la classe et qui sera incrémentées dans le(s) constructeur(s).
- ATTENTION, cette variable “static” ne doit pas être accessible.
- la méthode doit-elle être aussi “static” ?
classe “CompteurInstance”
public class CompteurInstance
{
// variables d'instance
private static int nbInstances=0;
/**
* Constructeur d'objets de classe CompteurInstance
*/
public CompteurInstance()
{
// initialisation des variables d'instance
nbInstances += 1;
}
public int voirNbInstances()
{
return nbInstances;
}
public static int statVoirNbInstances()
{
// Insérez votre code ici
return nbInstances;
}
}
classe “CompteurInstanceTest”
public class CompteurInstanceTest extends junit.framework.TestCase
{
/**
* Constructeur de la classe-test CompteurInstanceTest
*/
public CompteurInstanceTest()
{
}
public void testCptInstances()
{
CompteurInstance compteur1 = new CompteurInstance();
CompteurInstance compteur2 = new CompteurInstance();
assertEquals(2, CompteurInstance.statVoirNbInstances());
assertEquals(2, compteur2.voirNbInstances());
assertEquals(2, compteur1.voirNbInstances());
assertEquals(compteur1.voirNbInstances(), CompteurInstance.statVoirNbInstances());
CompteurInstance compteur3 = new CompteurInstance();
assertEquals(compteur2.voirNbInstances(), CompteurInstance.statVoirNbInstances());
}
}