Files
Steve Kossouho bea28eca14 Convert Asciidoc to markdown
Converted asciidoc to markdown using ai.
2025-07-06 22:07:31 +02:00

57 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Exercices sur les classes (basique)
## Exercice 1
(Thème *bibliothèque*)
- Déclarez une classe `Library`
- Avec un attribut `name` (défaut `None`)
- Avec un attribut `address` (défaut `None`)
- Instanciez deux nouveaux objets de cette classe (différenciez noms de variables et de classes)
- Affichez la valeur de l'attribut `name` de l'un des objets
## Exercice 2
- Déclarez une classe `Book`
- Avec des attributs `title` (`None`), `author` (`None`), `year` (`None`)
- Instanciez un nouvel objet de cette classe
- Modifiez les attributs `title` et `author`
- Affichez la valeur de ces attributs
## Exercice 3 (méthodes)
- Réutilisez la classe `Library`
- Ajoutez-y un attribut `is_open` (`True`)
- Ajoutez une méthode `open(value=True)` qui change l'attribut `is_open`
- Ajoutez une méthode `show_status()` qui affiche l'état de la bibliothèque :
- `"Bibliothèque <nom> :"`
- `"État : Ouverte"` (ou `"fermée"`)
## Exercice 4 (Redéfinition de l'instanciation)
- Réutilisez la classe `Library`
- Définissez la méthode `__init__()`, qui accepte des arguments `name` et `address` :
- `name` est un argument à valeur par défaut, à `None`
- `address` possède une valeur par défaut à `None`
- La méthode utilise ces arguments pour initialiser les attributs de `self`.
- Instanciez deux nouveaux objets de cette classe
- Exécutez la méthode `show_status()` sur ces deux objets
## Exercice 5 (Héritage)
- Définissez une classe `ComicBook` héritant de `Book`
- Cette classe contient en plus un attribut `is_color` (`True`)
- Instanciez un objet de chacune des deux classes `Book` et `ComicBook`
- Vérifiez que l'objet de type `ComicBook` est bien un `Book` :
- en utilisant la fonction `isinstance(object, class)`
## Exercice 6 (Polymorphisme)
- Ajoutez un attribut `is_published` sur la classe `Book`
- Ajoutez une méthode `publish(value)` sur `Book`, qui change l'attribut `is_published`
- Redéfinissez la méthode `publish(value)` sur `ComicBook`, qui fait la même chose que dans `Book` (fonction `super()`), puis affiche `"Comic book mis à jour"`
- Testez les méthodes sur deux objets, de type `Book` et `ComicBook`.
## Exercice B1 (staticmethod)
- Écrivez une méthode statique dont la syntaxe est correcte.