Previous Up Next

Séance 4 (11/01/2019, 13:30)

CM 4 : Héritage

Le cours présente l’héritage, les classes abstraites et la réutilisation dans un langage objet tel que Java.

TD 5 : Comptes bancaires : une vue simplifiée

Le TD 5 propose de modéliser des comptes bancaires et une banque. Il permet de revoir la plupart des concepts objets, en particulier l’encapsulation, l’héritage, la redéfinition et la liaison dynamique, mais aussi les attributs et méthodes de classe.

Solution :

Voici un corrigé du TD 5 possible.

Exercice 1 : fichiers fournis et solution proposée.

Exercice 2 : fichiers fournis et solution proposée.

Exercice 3 : fichiers fournis et solution proposée.

Exercice 4 : fichiers fournis et solution proposée.

TP 6 : Héritage comme spécialisation

Le TP 6 propose de compléter l’éditeur de schémas mathématiques en donnant la possibilité de nommer les points.

Sont fournies les classes de l’application et toujours le paquetage contenant les classes de l’afficheur et sa documentation.

TP 7 : Héritage comme généralisation

Le TP 7 propose de formaliser la notion de schéma mathématique.

Sont fournies les classes de l’application et toujours le paquetage contenant les classes de l’afficheur et sa documentation.

TP 8 : Outils associés à Java Modeling Language (JML)

Le TP 8 présente les outils associés à JML que nous utilisons dans le cadre de la programmation par contrat.

Attention : Nous allons utiliser jml4c qui implante JML. Il est installé dans

    /mnt/n7fs/ens/tp_cregut/jml4c/

qui contient deux scripts jml4c ou jmlc (le compilateur) et jml4 ou jmlrac (le lanceur de la machine virtuelle). Il contient aussi jmldoc qui permet d’engendrer la documentation mais vient d’un ancien projet. Il contient également jmljavac et jmljava pour compiler et exécuter avec la version 7 de Java qui est nécessaire pour faire fonctionner jml4.

Remarque : Il est conseillé d’utiliser d’abord jmljavac pour compiler toutes les classes avec le compilateur classique. En effet, jml4c n’est pas très robuste ! Une fois que le programme compile avec le compilateur java classique, on peut compiler avec jml4c ou jmlrac les classes à instrumenter.

Pour les utiliser de manière plus simple, il faut modifier votre PATH en faisant pour csh/tcsh/... (à mettre dans le fichier $HOME/.cshrc) :

setenv PATH /mnt/n7fs/ens/tp_cregut/jml4c/:$PATH

ou en sh/bash/... (à mettre dans le fichier $HOME/.bashrc)

export PATH=/mnt/n7fs/ens/tp_cregut/jml4c/:$PATH

Si ce n’est pas déjà fait, vous pouvez aussi positionner CLASSPATH pour donner accès aux fichiers d’archive de JUnit (version 3 et 4) ainsi :

setenv CLASSPATH /mnt/n7fs/ens/tp_cregut/junit4.jar:/mnt/n7fs/ens/tp_cregut/junit3.jar:.

ou en sh/bash/...

export CLASSPATH=/mnt/n7fs/ens/tp_cregut/junit4.jar:/mnt/n7fs/ens/tp_cregut/junit3.jar:.

D’autre part, il faut compiler et exécuter à l’extérieur de bluej ou eclipse.

Voici les classes fournies.

TP 9 : Réalisation d’un ensemble d’entiers

Le TP 9 illustre la programmation par contrat sur la réalisation d’un ensemble qui est ensuite utilisé pour trouver des nombres premiers par l’algorithme du crible d’Ératosthène.

Ce sujet montre l’intérêt de la notion d’interface. Deux réalisations de l’ensemble sont demandées. La classe Crible s’appuyant sur l’interface de l’ensemble, elle peut être utilisée avec les deux réalisations sans modification.

Les assertions de la programmation par contrat sont exprimées en JML (Java Modeling Language).

Voici les classes fournies.

Solution : Voici une solution possible.

Merci de signaler toute erreur ou problème concernant ce document à Xavier Crégut <Prenom.Nom@enseeiht.fr>.
Previous Up Next