Classe SDA 7 2025-2026
L'encapsulation vise à protéger l'intégrité de l'état d'un objet en rendant ses attributs private et en ne fournissant qu'un accès contrôlé via des méthodes publiques (getters/setters).
Le mot-clé super fait référence à la classe mère. L'appel super(...) dans un constructeur de la classe fille invoque le constructeur correspondant de la classe mère pour initialiser les attributs hérités.
Animal monAnimal = new Chien();. Quelle est la manifestation la plus claire du polymorphisme ici ?Le polymorphisme signifie "plusieurs formes". Il permet de traiter un objet (Chien) comme une instance de son type parent (Animal), ce qui rend le code plus flexible et générique.
Une interface définit une capacité (ce qu'un objet peut faire), tandis qu'une classe abstraite définit une identité (ce qu'un objet est) et peut fournir une implémentation de base commune à toutes ses sous-classes.
finally est-il exécuté ?Le bloc finally est conçu pour contenir du code de "nettoyage" (comme fermer un fichier ou une connexion) qui doit impérativement être exécuté, quel que soit le résultat du bloc try.
L'instruction throw new MyException(); est utilisée pour déclencher activement une exception. throws, quant à lui, est utilisé dans la signature d'une méthode pour déclarer qu'elle peut lancer une exception.
scanner.nextInt(), quelle exception sera typiquement levée ?Cette exception spécifique à la classe Scanner est levée lorsque le type de l'entrée ne correspond pas au type attendu par la méthode (nextInt, nextDouble, etc.).
C'est le mécanisme standard pour créer des types d'erreurs spécifiques à la logique de votre application, comme InvalidAgeException ou InsufficientFundsException.
ArrayList par rapport à un tableau standard (String[]) ?Contrairement aux tableaux dont la taille est fixe à la création, une ArrayList gère automatiquement le redimensionnement, ce qui la rend beaucoup plus flexible.
HashMap<String, Integer>, comment récupère-t-on la valeur associée à la clé "score" ?La méthode get(key) est la manière standard de récupérer la valeur associée à une clé dans une HashMap. Si la clé n'existe pas, elle retourne null.
HashSet ?L'objectif d'un HashSet est de garantir l'unicité des éléments qu'il contient. Toute tentative d'ajout d'un élément déjà présent est simplement ignorée.
La classe abstraite est idéale pour modéliser une relation "est-un" (ex: Chien est un Animal) et factoriser du code commun dans les méthodes concrètes, tout en forçant l'implémentation de méthodes abstraites.
La classe Files de l'API java.nio fournit des méthodes statiques très pratiques comme readString et writeString pour des opérations de fichier simples et concises.
C'est une bonne pratique essentielle qui évite les fuites de ressources en s'assurant que la méthode close() de la ressource est toujours appelée, ce qui rend le bloc finally superflu pour cette tâche.
FileWriter pour ajouter du texte à la fin d'un fichier existant sans l'écraser ?Le constructeur de FileWriter accepte un second argument booléen. Si ce dernier est true, le flux est ouvert en mode "ajout" (append), et les nouvelles données sont écrites à la fin du fichier.
throws IOException?IOException est une "exception vérifiée". Le compilateur Java impose sa gestion (via try-catch ou en la propageant), ce qui rend les programmes qui manipulent des fichiers plus robustes.