## Exercices - Les méthodes et visibilité Rappels : Une **méthode** en Java est un **bloc de code** qui effectue une tâche spécifique. Elle est définie au sein d'une **classe** et peut être appelée pour exécuter une action sur **des attributs** : des données contenues dans des objets de cette classe. Les méthodes sont utilisées pour **organiser** et **structurer** le programme en unités fonctionnelles, rendant ainsi le code plus **modulaire** et **réutilisable**. ### Exercices Réalisez les exercices suivants (vous ne pouvez **PAS** utiliser les **boucles**, les **conditions** ou toute autre **possibilité algorithmique** de java). Vous pouvez utiliser les **variables**, les **attributs** et les **méthodes** et tout ce qui peut s’y associer). ### 1 - Addition Dans une classe `Addition`, crée une méthode ```java int calculerSomme(int a, int b) ``` La méthode doit simplement **additionner** les deux paramètres passés arguments de la méthode et **retourner le résultat**. ### 2 - Personne (visibilité) Crée une classe `Personne` avec les méthodes suivantes : - `afficherNom()` qui **affiche le nom** de la personne. Cette méthode doit être **publique**. - `changerNom(String nom)` qui permet de **changer le nom** de la personne. Cette méthode doit être **privée**. - `afficherAge()` qui **affiche l'âge** de la personne. Cette méthode doit être **protégée**. - `afficherAdresse()` qui **affiche l'adresse** de la personne. Cette méthode doit avoir aucun modificateur (c'est-à-dire **visibilité package**). ```mermaid classDiagram class Personne { + afficherNom() String - changerNom(String nom) String # afficherAge() int afficherAdresse() String } ``` Ensuite, dans la classe principale `Main`, crée **une instance** de `Personne` et appelle les méthodes **publiques** et **visibilité package** Dans **une autre classe**, située dans **un autre package** crée un objet `Personne` et teste les méthodes selon leur visibilité et observe le résultat. ### 3 - Calculatrice (surcharge) Créer une classe `Calculatrice` avec des **méthodes** pour effectuer **l'addition**, la soustraction, la multiplication et la division. Vous devez utiliser la surcharge de méthode. - La classe **ne doit pas utiliser de conditions** (if, else) **ni de boucles**. - L'entrée des données sera simplifiée et prédéfinie, et les calculs devront être effectués en utilisant des méthodes directement appelées. - `add()`, `sous()`, `divid()`, `multi()` prennent deux entiers en paramètres et retourne leur somme. - `add()`, `sous()`, `divid()`, `multi()` prennent deux nombres à virgule flottante (double) en paramètres et retourne leur somme. - public double `effectuerOperation(String operation, double a, double b)` sera la méthode qui permettra de réaliser les opération elle poura utiliser la condition Switch exceptionnellement. Seul cette méthode sera appeler depuis l’instance `Calculatrice` pour effectuer des additions, soustractions, divisions et multiplications. - Un message secret (easter egg) doit être affiché lorsqu'une certaine operation est détecté, sans utiliser de conditions explicite. ### 4 - Compteur (static) Crée une classe `Compteur` qui contient : - Une méthode statique `incrementer(int valeur)` qui prend un entier en paramètre et l'ajoute à une variable statique compteur. - Une méthode statique `afficherCompteur()` qui affiche la valeur actuelle du compteur. Que pensez-vous de ce compteur ? Est-ce que cela pourrait poser des problèmes ?