64 lines
2.2 KiB
Markdown
64 lines
2.2 KiB
Markdown
# EXO-JAVA-Interfaces
|
|
|
|
## Description
|
|
|
|
Le programme doit implémenter un système de formes géométriques avec deux aspects distincts :
|
|
|
|
1. Le calcul des propriétés géométriques (aire, périmètre)
|
|
2. La représentation visuelle des formes (dessin dans la console)
|
|
3.
|
|
|
|
### Interfaces à créer
|
|
|
|
1. Interface `Calculable` :
|
|
- Permet le calcul des propriétés géométriques d'une forme
|
|
- Méthodes requises :
|
|
- `calculerAire()` : retourne l'aire de la forme en double
|
|
- `calculerPerimetre()` : retourne le périmètre de la forme en double
|
|
- Les implémentations doivent assurer des valeurs positives
|
|
- Les calculs nécessitent une précision de 0.001
|
|
1. Interface `Dessinable` :
|
|
- Permet la représentation visuelle d'une forme
|
|
- Méthodes requises :
|
|
- `dessiner()` : affiche une représentation ASCII de la forme dans la console
|
|
- `obtenirDescription()` : retourne une description textuelle de la forme
|
|
- Les implémentations doivent :
|
|
- Créer un rendu ASCII adapté aux dimensions
|
|
- Fournir une description claire et concise
|
|
- Gérer les cas limites (formes très grandes ou très petites)
|
|
|
|
### Classes à implémenter
|
|
|
|
1. Créer les classes suivantes qui implémentent les deux interfaces :
|
|
- `Cercle` (rayon)
|
|
- `Rectangle` (longueur, largeur)
|
|
- `Triangle` (base, hauteur)
|
|
1. Chaque classe doit :
|
|
- Implémenter les méthodes de calcul géométrique
|
|
- Implémenter les méthodes de dessin (représentation ASCII dans la console)
|
|
- Gérer la validation des données
|
|
|
|
### Démonstration du polymorphisme multiple
|
|
|
|
1. Créer une classe `GestionnaireFormes` qui peut :
|
|
- Manipuler une liste de formes en tant que `Calculable`
|
|
- Manipuler une liste de formes en tant que `Dessinable`
|
|
- Démontrer l'utilisation séparée des deux aspects
|
|
|
|
## Contraintes techniques
|
|
|
|
- Utiliser le package `com.humanbooster.exercices`
|
|
- Documenter le code avec des commentaires JavaDoc
|
|
- Implémenter une gestion propre des erreurs
|
|
|
|
## Fonctionnalités attendues
|
|
|
|
- Création de différentes formes géométriques
|
|
- Calcul des propriétés géométriques
|
|
- Affichage des formes dans la console (bonus)
|
|
|
|
## Bonus
|
|
|
|
- Implémenter l'interface `Comparable` pour trier les formes
|
|
- Ajouter une interface `Transformable` pour redimensionner les formes
|
|
- Sauvegarder et charger des formes depuis un fichier |