Vincent Guillet c87dd9805d first commit
2025-04-28 17:33:37 +02:00
2025-04-28 17:33:37 +02:00
2025-04-28 17:33:37 +02:00

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)

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
Description
No description provided
Readme 31 KiB
Languages
Java 100%