first commit
This commit is contained in:
143
travaux/README.md
Normal file
143
travaux/README.md
Normal file
@@ -0,0 +1,143 @@
|
||||
***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 :
|
||||
```bash
|
||||
git checkout etape00 # Remplacer par le numéro d'étape souhaité
|
||||
```
|
||||
|
||||
Pour revenir à la version finale :
|
||||
```bash
|
||||
git checkout master
|
||||
```
|
||||
|
||||
Pour voir les différences entre deux étapes :
|
||||
```bash
|
||||
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
|
Reference in New Issue
Block a user