Brevet de technicien supérieur Essaouira Matière : Analyse & Programmation
Filière : Développement web full stack 2 Enseignante : F. BENDAIDA
Année 2025-2026
TP N° 4: Membres statiques & Héritage
Exercice 1 :
Créer une classe NbrVisiteur qui attribue un numéro unique à chaque nouvel objet créé :
• Le premier objet aura le numéro 1, le second 2, et ainsi de suite. Les numéros ne seront pas
réutilisés même si un objet est supprimé.
• La classe doit avoir :
1. Un constructeur qui attribue le numéro unique à l'objet.
2. Une méthode getIdent() qui retourne le numéro de l'objet.
3. Une méthode getIdentMax() qui retourne le numéro du dernier objet créé.
Écrire ensuite un programme pour tester cette classe.
Exercice 2 :
Écrire une méthode statique dans une classe utilitaire nommée Util qui calcule la valeur de la
fonction d’Ackermann, définie pour m≥0 et n≥0 comme suit :
• A(m,n)=A(m−1,A(m,n−1)) pour m>0 et n>0,
• A(0,n)=n+1 pour n≥0,
• A(m,0)=A(m−1,1) pour m>0.
La méthode devra :
1. Être nommée ackermann.
2. Prendre deux paramètres entiers m et n.
3. Retourner un entier correspondant à la valeur calculée de la fonction d’Ackermann.
Ensuite, écrire un programme principal pour tester cette méthode en affichant plusieurs résultats de
la fonction A(m,n) avec des valeurs de m et n raisonnables.
Exercice 3 :
Soit la classe Point ainsi définie :
class Point{
public Point (int abs, int ord) { x = abs ; y = ord ; }
public void affiche (){
[Link] ("Coordonnees " + x + " " + y) ;
private int x ; // abscisse
private int y ; // ordonnee
Ajoutez une méthode maxNorme permettant de déterminer, parmi deux points, celui qui est le plus
éloigné de l’origine (c'est-à-dire celui dont la norme √𝑥 2 + 𝑦² est la plus grande).
On fournira deux implémentations de cette méthode :
1. Méthode statique : maxNorme sera une méthode statique de la classe Point prenant deux
objets Point en paramètres.
2. Méthode usuelle : maxNorme sera une méthode d’instance (non statique), appliquée sur un
objet Point, prenant un autre point comme paramètre.
Ensuite, écrivez un programme pour tester les deux versions de la méthode maxNorme.
Exercice 4 :
On dispose de la classe suivante (disposant cette fois d’un constructeur) :
class Point {
public Point (int x, int y) {
this.x = x ; this.y = y ; }
public void affCoord() { [Link] ("Coordonnees : " + x + " " + y) ;
private int x, y ;
Réaliser une classe PointNom, dérivée de Point permettant de manipuler des points définis par leurs
coordonnées (entières) et un nom (caractère). On y prévoira les méthodes suivantes :
• Constructeur pour définir les coordonnées et le nom d’un objet de type PointNom,
• toString() pour afficher les coordonnées et le nom d’un objet de type PointNom.
Écrire un petit programme utilisant la classe PointNom.
Exercice 5 :
Créez une hiérarchie pour représenter des employés dans une entreprise.
1. Définissez une classe de base Employee avec :
o Attributs : name (nom), salary (salaire de base).
o Méthode : calculateSalary() qui retourne le salaire de l'employé.
2. Créez une classe Manager qui hérite de Employee et ajoute :
o Attribut : bonus (prime).
o Redéfinissez calculateSalary() pour inclure le bonus dans le calcul.
3. Créez une classe Intern (stagiaire) qui hérite de Employee et redéfinit calculateSalary() pour
diviser le salaire par 2.
4. Dans le programme principal :
Créez un tableau d’objets Employee contenant des employés, des managers et des stagiaires.
Parcourez le tableau et affichez le salaire calculé pour chaque employé.
Exercice 6 :
Simulez un système de bibliothèque.
1. Créez une classe Book avec :
o Attributs : title, author, year.
2. Créez une classe Library qui contient une collection de Book (par exemple, un tableau ou une
liste).
o Ajoutez des méthodes pour :
▪ Ajouter un livre.
▪ Supprimer un livre.
▪ Lister tous les livres d’un auteur donné.
3. Créez une sous-classe DigitalLibrary de Library qui ajoute :
o Une méthode pour télécharger un livre (affiche un message comme "Téléchargement
en cours...").
4. Testez les classes en créant une bibliothèque et en y ajoutant des livres.