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());
	}
}

retour