Files
first-depot/travaux/README.md
2025-10-07 16:46:34 +02:00

3.6 KiB

Fichier généré par IA à partir des sources et de la liste des commits

TP Ouvertures - Cheminement pédagogique

Ce projet illustre la construction progressive d'un système de gestion de bâtiments avec leurs salles et ouvertures. L'historique Git permet de retrouver chaque étape du développement.

Parcours des étapes

Étape 00 - Démarrage du projet

Tag: etape00

  • Classes importées initialement
  • Pas de méthode main
  • Définition du package non faite

Concepts abordés: Structure initiale d'un projet Java


Étape 01 - Première classe exécutable

Tag: etape01

  • Ajout de la classe ZeMain avec une méthode static void main

Concepts abordés: Point d'entrée d'une application Java


Étape 02 - Développement de la classe Salle

Tag: etape02

  • Implémentation complète de la classe Salle
  • Ajout des propriétés (numéro, liste des ouvertures)
  • Création des constructeurs (par défaut et paramétré)
  • Méthodes d'accès (getters/setters)
  • Méthode afficherInfos()

Concepts abordés:

  • Encapsulation
  • Constructeurs
  • Collections (ArrayList)
  • Association entre classes

Étape 03 - Spécialisation avec la classe Amphi

Tag: etape03

  • Implémentation de la classe Amphi qui hérite de Salle
  • Ajout de propriétés spécifiques (hauteurSousPlafond, sallesVoisines)
  • Redéfinition de la méthode afficherInfos()

Concepts abordés:

  • Héritage
  • Spécialisation
  • Redéfinition de méthodes (override)
  • Utilisation de super

Étape 04 - Tests et validation

Tag: etape04

  • Tests dans le main pour Ouverture, Salle et Amphi
  • Création d'instances
  • Tests des méthodes d'affichage

Concepts abordés:

  • Tests manuels
  • Instanciation d'objets
  • Manipulation des collections

Étape 05 - Gestion des bâtiments

Tag: etape05

  • Implémentation de la classe Batiment
  • Gestion d'une liste de salles
  • Ajout de tests dans le main

Concepts abordés:

  • Composition
  • Navigation dans les associations
  • Agrégation d'objets

Étape 06 - Gestion des exceptions

Tag: etape06 (HEAD)

  • Ajout d'une levée d'exception dans Batiment::ajouterSalle(Salle s)
  • Exemple de traitement d'exception dans le main avec try/catch
  • Validation des paramètres (vérification de null)

Concepts abordés:

  • Gestion des exceptions en Java
  • throw et IllegalArgumentException
  • Blocs try/catch
  • Validation des entrées
  • Différence entre exception traitée et non traitée

Navigation dans l'historique

Pour revenir à une étape spécifique :

git checkout etape00  # Remplacer par le numéro d'étape souhaité

Pour revenir à la version finale :

git checkout master

Pour voir les différences entre deux étapes :

git diff etape02 etape03

Structure du projet

src/travaux/
├── ZeMain.java          # Point d'entrée avec tests
├── Ouverture.java       # Classe de base pour fenêtres/portes
├── Salle.java          # Classe représentant une salle
├── Amphi.java          # Spécialisation de Salle
├── Batiment.java       # Agrégation de salles
├── Responsable.java    # (non utilisé dans ce TP)
└── autres classes...

Concepts Java couverts

  1. POO de base: Classes, objets, encapsulation
  2. Constructeurs: Par défaut et paramétrés
  3. Collections: ArrayList et manipulation
  4. Héritage: Extension de classes, super
  5. Polymorphisme: Redéfinition de méthodes
  6. Exceptions: Levée et traitement
  7. Associations: Composition et agrégation