Un extrait de conférence avec un mentor dans le cadre du cours Codegym University. Inscrivez-vous au cours complet.


"Encore toi, Amigo. Eh bien, bonjour."

« Il paraît que tu n'es pas très content de me voir, Diego ?

"J'ai l'impression que vous pensez avoir déjà tout appris sur les méthodes en Java."

"Oh, je ne..."

« Je ne pense pas ! Tu n'en connais même pas la moitié.

"Bien sûr, je ne désagr...

"D'accord, assez parlé. Il est temps de commencer. Et nous allons commencer par quelque chose de simple. Par exemple, le fait que Java a une instruction return . Elle vous permet de terminer instantanément une méthode dans laquelle elle est appelée. Voici l'instruction :

return;

"C'est simple : le mot solitaire returnsuivi d'un point-virgule. Dès que le programme exécute cette instruction, la méthode en cours se termine et la méthode appelante continue.

"Si returnest appelé dans la mainméthode, alors la mainméthode se terminera immédiatement, et avec elle tout le programme.

Exemple:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {
     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)
   {
     int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};
     fill(months, 2, 10, 8);
   }
}
La fill méthode remplit une partie du tableau passé avec value.

La partie du tableau à remplir est définie par les indices from et to.

Si from est inférieur 0ou to  supérieur à la longueur du tableau, la méthode se termine immédiatement.

"Le programme ci-dessus a une fillméthode qui remplit le tableau qui lui est passé avec value. Il ne remplit pas tout le tableau, seulement la partie spécifiée par les indices fromet to.

"Au début de la fillméthode, les valeurs transmises sont vérifiées pour s'assurer qu'elles sont valides. Si fromest inférieur à 0 ou tosupérieur à la longueur du tableau, la fillméthode se termine immédiatement (exécute une returninstruction)."

"Compris. C'est tout ce que cette déclaration fait ?"

"En fait, l' returninstruction est plus utile que vous ne le pensez. Elle est si utile qu'elle se trouve dans presque toutes les méthodes de Java. Et maintenant, je vais vous amener à comprendre pourquoi il en est ainsi.

Des méthodes avec un résultat,void

"Vous vous souvenez probablement qu'il y a des déclarations, et il y a des expressions . Quelle est la différence entre elles?"

"Si je ne me trompe pas, une expression, contrairement à une déclaration, a un sens qui peut être utilisé quelque part."

"Correct. Et, en Java, les méthodes peuvent aussi avoir une valeur . Et c'est une très bonne nouvelle : les méthodes sont non seulement capables de faire quelque chose en fonction des paramètres d'entrée, mais aussi, par exemple, d'évaluer quelque chose et de renvoyer le résultat de le calcul .

"Au fait, vous avez déjà rencontré de telles méthodes :

double delta = Math.abs(d1 - d2);
La abs()méthode renvoie un double
Scanner console = new Scanner(System.in);
int x = console.nextInt();

La nextInt()méthode retourne unint
String str = "Hello";
String s2 = str.toUpperCase();
La toUpperCase()méthode retourne unString
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

La copyOf()méthode retourne unint[]

"Chaque méthode ne peut renvoyer qu'une seule valeur d'un type prédéterminé . Le type de retour est déterminé lors de la déclaration de la méthode :

public static Type name(parameters)
{
  method body
}

nameest le nom de la méthode, parametersest la liste des paramètres de la méthode et typeest le type du résultat renvoyé par la méthode.

Pour les méthodes qui ne renvoient rien, il existe un type d'espace réservé spécial : void.

"En d'autres termes, si j'écris ma méthode et que je ne veux rien renvoyer, alors je déclare le type de la méthode comme étant void, et c'est tout ?"

"Ouais. Et je dois aussi dire que Java a pas mal de telles méthodes.

Retourner un résultat

"J'ai compris comment déclarer une méthode qui renvoie le résultat d'un calcul/travail. Comment puis-je renvoyer le résultat de la méthode elle-même?"

"C'est une question valable. La returndéclaration nous aide ici encore une fois. Passer un résultat d'une méthode ressemble à ceci :

return value;

"L' returninstruction mettra fin à la méthode immédiatement. Et valuec'est ce que la méthode doit renvoyer à la méthode appelante lorsqu'elle se termine. Le type de valuedoit correspondre à celui Typespécifié dans la déclaration de la méthode. Voici quelques exemples pour renforcer ce que vous avez appris :

Exemple 1. La méthode calcule le minimum de deux nombres :

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
La méthode renvoie le minimum de deux nombres.

Si a < b
retour a
Sinon
retourb

Exemple 2. La méthode duplique la chaîne qui lui est transmise nfois :

String multiple(String str, int times)
{
   String result = "";

   for (int i = 0; i < times; i++);
     result = result + " "+ str;
   return result;
}
La méthode prend deux paramètres — une chaîne et le nombre de fois que la chaîne doit être répétée.
Une chaîne vide est créée pour le résultat futur.

Dans une boucle avec timesitérations, un espace et la chaîne strsont ajoutés à la chaîne result.
La chaîne resultest renvoyée comme résultat de la méthode.

Exemple 3 : La méthode calcule le maximum de deux nombres à l'aide de l'opérateur ternaire :

int max(int a, int b)
{
   return (a > b ? a : b);
}
La méthode renvoie le maximum de deux nombres.

retour (si a > b, alors a, sinon b)

"Excellent. Les méthodes sont mon nouveau superpouvoir !"

"Seulement si vous vous entraînez suffisamment dans les tâches pratiques. Encore et encore."