Méthodes en Java

Introduction aux Méthodes

Les méthodes constituent des blocs de code réutilisables au sein des classes en Java. Contrairement aux fonctions qui peuvent être indépendantes, les méthodes sont toujours associées à une classe ou à un objet. Étant donné que Java ne permet pas de déclarer une logique en dehors des classes, on ne peut pas vraiment parler de fonctions selon cette définition. Toutefois, les méthodes statiques permettent d'avoir une logique réutilisable sans instance d'objet.

Les Éléments d'une Méthode

Une méthode comprend au moins les éléments suivants :

  • Type de retour : Le type de la valeur renvoyée par la méthode.
  • Nom : Le nom de la méthode.

En option, une méthode peut inclure :

  • Paramètres : Les méthodes peuvent ne pas avoir, avoir un ou plusieurs paramètres, qui consistent en un type de données et un nom. Ces paramètres permettent de transmettre des valeurs à la méthode, utilisables dans son corps.
  • Modificateurs : Ces derniers définissent comment et depuis quel contexte une méthode peut être appelée.
  • Exceptions : Des exceptions peuvent être levées par une méthode pour gérer des situations inattendues (par exemple, un fichier inexistant).
  • Corps : Le corps de la méthode contient toutes les instructions que la méthode doit exécuter lorsqu'elle est appelée. Le corps est facultatif dans les interfaces et classes abstraites.

Signature Minimale

Voici comment créer une méthode simple appelée .getOneNumber() :

int getOneNumber() {  return 1; }
  • Type de retour : int
  • Nom : getOneNumber
  • Modificateur : package private (par défaut)

Type de Retour

Les méthodes peuvent renvoyer n'importe quel type de données figurant dans les types de données disponibles. De surcroît, elles peuvent retourner des instances de n'importe quelle classe. Si une méthode ne doit pas renvoyer de valeur, son type de retour doit être défini comme void.

Nom de la Méthode

Le nom d'une méthode doit décrire ce que fait celle-ci de manière aussi claire que possible. Le but est que le développeur comprenne la fonction de la méthode sans avoir besoin de consulter son corps. En suivant la règle qu'une méthode ne doit faire qu'une seule chose, il devient également plus simple de lui donner un nom concis.

Exemples de Noms

Voici quelques exemples de noms de méthodes valides :

  • getObject
  • setNumber
  • countUntil300
  • _isValidCharacter
  • GET_MAX_VALUE

Et des exemples de noms invalides :

  • 123number (commence par un chiffre)
  • get-object (les tirets ne sont pas autorisés)
  • sum_number1&number2 (les esperluettes ne sont pas autorisées)
  • assert (ne peut pas être un mot clé)

Par convention, les noms de méthodes commencent par un verbe, et chaque mot subséquent commence par une majuscule.

Paramètres

Un paramètre se compose d'un type de données et d'un nom, permettant d'accéder à sa valeur dans le corps de la méthode. Pour une méthode sans paramètres, il faut des parenthèses vides (). Les paramètres multiples doivent être séparés par des virgules ,.

Les valeurs des arguments sont accessibles dans le corps de la méthode via les noms de paramètres.

Modificateurs

Les modificateurs peuvent changer la manière dont une méthode est appelée, que ce soit en termes de visibilité (public, protected, private, package private), si la méthode agit sur l'état de l'objet ou peut être exécutée sans créer une instance de la classe (static), ou si elle doit être remplacée dans les classes dérivées (final).

Voici un exemple de méthode :

public int sum(int number1, int number2) {  return number1 + number2; }
  • Modificateur : public
  • Type de retour : int
  • Nom : sum
  • Paramètres : int number1, int number2
  • Corps : return number1 + number2;

Modificateurs de Visibilité

  • public : Méthodes accessibles de partout, à l'intérieur ou à l'extérieur de la classe.
  • private : Méthodes accessibles uniquement à l'intérieur de la classe.
  • package private : Méthodes accessibles uniquement aux classes dans le même package.
  • protected : Méthodes accessibles à l'intérieur de la classe ou aux classes dérivées.

Autres Modificateurs

Les méthodes statiques peuvent être appelées sans créer d'instance d'objet. Par conséquent, l'état d'objet dans ces méthodes ne peut pas être accédé via this.

Exemple de méthode statique :

public static void main(String[] args) {  System.out.println("Hello world"); }
  • Modificateurs : public static
  • Type de retour : void
  • Nom : main
  • Paramètres : String[] args
  • Corps : System.out.println("Hello world");

Exceptions

Les méthodes peuvent également lancer des exceptions. Par exemple, si vous essayez d'accéder à un fichier qui n'existe pas. Lorsqu'une méthode leva une exception, la méthode appelante doit gérer ou également lever cette exception.

Voici un exemple montrant comment Java lance une exception si une opération de division par zéro est tentée :

public float divide(float dividend, float divisor) throws ArithmeticException {  return dividend / divisor; }
  • Modificateurs : public
  • Type de retour : float
  • Nom : divide
  • Paramètres : float dividend, float divisor
  • Exception levée : throws ArithmeticException
  • Corps : return dividend / divisor

Corps de la Méthode

Tout ce qui se trouve entre { et } est considéré comme le corps de la méthode. Le corps contient le code, les instructions ou la logique qui sera exécuté lorsque la méthode est appelée.