JavaRush /Blog Java /Random-FR /Méthodes en Java
articles
Niveau 15

Méthodes en Java

Publié dans le groupe Random-FR
Méthodes en Java - 1En Java, une application est constituée de classes. Les classes, quant à elles, sont constituées de variables. Ils sont chargés de stocker les données et les méthodes qui sont responsables du comportement de la classe : autrement dit, la logique qu'elle peut fournir (par exemple, traiter certaines données, appeler d'autres méthodes, etc.). Nous pouvons parler longtemps de composants tels que variables, mais ce n’est pas la raison pour laquelle nous nous sommes réunis aujourd’hui. Parlons mieux d'un tel composant de la classe en tant que méthode. Méthodes en Java - 2Une méthode est un bloc de code nommé déclaré dans une classe. Il contient une certaine séquence complète d'actions (instructions) visant à résoudre un problème distinct, qui peut être réutilisée. En d’autres termes, une méthode est une fonction : quelque chose que votre classe peut faire. D'autres langages ont également des fonctions. Seulement en Java, ils sont membres de classes et, selon la terminologie POO, sont appelés méthodes. Mais avant de continuer, regardons un petit exemple :
public String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
  return resultSentence;
}
Il n’y a rien de compliqué ici : une méthode Java dont la tâche est de générer une chaîne de salutation avec le nom que l’on lui passe. Comme par exemple - Hello world! My name is Bobby Comprenons correctement la construction d'une méthode en examinant chaque mot-clé dans la déclaration de méthode (de gauche à droite). Notre premier mot-clé est public, et il désigne un modificateur d'accès :

Modificateurs d'accès

Ils indiquent l'étendue de visibilité autorisée pour les membres de la classe, c'est-à-dire la restriction des endroits dans lesquels une variable ou une méthode peut être utilisée. Méthodes en Java - 3Les modificateurs d'accès suivants sont utilisés en Java :
  • publique : publique. Les méthodes ou champs avec ce modificateur sont publics, visibles par les autres classes (ou plutôt leurs méthodes et champs) à partir du package actuel et des packages externes. Il s’agit du niveau d’accès le plus large connu ;

  • protected : les méthodes ou variables avec ce modificateur sont accessibles depuis n'importe où dans la classe ou le package actuel, ou dans les classes qui héritent de celui-ci, ainsi que les méthodes ou les champs, même s'ils se trouvent dans d'autres packages

    protected String constructHelloSentence(String name) {...}
  • Modificateur par défaut. Si un champ ou une méthode de classe n'a pas de modificateur, le modificateur par défaut est appliqué. Dans ce cas, les champs ou méthodes sont visibles par toutes les classes du package actuel (comme protected , mais sans visibilité lors de l'héritage).

    String constructHelloSentence(String name) {...}
  • private : l'opposé du modificateur public . Une méthode ou une variable avec un tel modificateur n'est disponible que dans la classe dans laquelle elle est déclarée.

    private String constructHelloSentence(String name) {...}
Nous avons ensuite Stringdans la signature de la méthode (la première ligne de la méthode décrivant ses propriétés).

Valeur de retour

La valeur de retour correspond aux données (un résultat de l'exécution de la méthode) qui viennent à la place après l'appel. Chaque méthode a une valeur de retour. Ou non?

Méthodes de valeur de retour

Cette valeur peut être n'importe quel type de donnée : une variable de type simple ou de type référence. Dans cet exemple, nous indiquons que la méthode doit renvoyer un objet de type String, qui, on s'en souvient, est une classe qui décrit une chaîne. Le deuxième point ici est le mot return. Elle a une relation directe avec la valeur de retour : la valeur qui la suit sera renvoyée à l'endroit où la méthode a été appelée, et la méthode elle-même se fermera alors return. Ce mot apparaît généralement dans la dernière ligne de la méthode (sauf pour les méthodes comportant diverses branches comme if, else...). Si vous écrivez le code sur la ligne suivante aprèsreturn :
private String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  return resultSentence;
  System.out.println(resultSentence);
}
alors nous obtiendrons des malédictions du compilateur, ce qui n'est pas très bon (le compilateur ne recommandera pas de bêtises). Vous devez également vous rappeler que le type de données après сdoit correspondre à celui déclaré dans la signature de la méthode. returnEn savoir plus ici .

vide

A quoi sert-il voiden Java ? Toutes les méthodes n'ont pas de valeur de retour. Certains n’ont rien ou n’ont rien à restituer. Que faire alors ? Ensuite, dans la signature de la méthode, nous écrivons void. À quoi ressemblerait notre méthode sans valeur de retour ?
protected void constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
}
Vous avez probablement remarqué qu'avec la valeur de retour, le mot returnSo it is a disparu, car notre méthode ne devrait rien renvoyer. On peut cependant le placer ici, mais sans aucune signification, simplement return; dans la dernière ligne. C'est généralement inutile, voidc'est donc facultatif dans les méthodes with. Cependant, il peut être utilement utilisé dans voiddes méthodes, telles que des branches ou des boucles, où vous souhaitez quitter la méthode immédiatement. Ensuite, dans la déclaration de méthode, nous avions constructHelloSentence.

Noms des méthodes

constructHelloSentence - le nom de la méthode, trait distinctif par lequel on peut distinguer l'une ou l'autre méthode. Et, en conséquence, appelez l'une ou l'autre méthode. Méthodes en Java - 4Les noms de méthodes doivent commencer par une petite lettre, mais également utiliser la casse camel (CamelCase, camel case) : c'est-à-dire Chaque mot suivant du nom est adjacent au précédent et est écrit avec une lettre majuscule. Les noms de méthodes doivent décrire la méthode (le meilleur commentaire est de nommer correctement). Pour ce faire, utilisez des verbes ou des combinaisons avec des verbes : getCat, delete, createCar, etc. Au sein d'une classe, les noms de méthodes doivent être uniques (sans compter la surcharge des méthodes, dont nous parlerons un peu plus tard). Regardons plus en détail la méthode que nous analysons et voyons ( String name)

Paramètres de la méthode

Les méthodes peuvent (ou non) contenir certaines données qui proviendront de l’extérieur, notamment de l’endroit où la méthode a été appelée. Dans notre cas, nous voyons qu'un objet de type Stringavec un nom arrive nameet plus tard nous utilisons cette variable dans notre méthode. Vous pouvez utiliser un nombre illimité de paramètres dans une méthode, mais plus de 7 ne sont pas recommandés. Lorsque nous ne connaissons pas le nombre exact d'éléments, mais que tous ces éléments sont nécessaires dans le même but et seront du même type (par exemple, String), des points de suspension sont utilisés :
public void constructHelloSentence(String...name) {
 ...
}
L’attrait pour chaque élément sera le suivant : name[0] est-ce que cela vous rappelle quelque chose ? C'est vrai, tableau ! Rien ne changera si on écrit :
protected void constructHelloSentence(String[] name) {
 ...
}
L'accès aux éléments sera également de la forme : name[1] Et encore une chose. Les arguments de la méthode peuvent être finaux :
public String constructHelloSentence(final String name) {
  ...
}
Cela signifie que la référence du nom est liée à un objet spécifique Stringet ne peut pas être remplacée. finalVous pouvez en savoir plus sur l'utilisation des variables de référence et leur interaction avec des mots réservés dans le document « Types de données de référence en Java ».

Méthodes d'appel

Nous avons donc réglé la création de méthodes, parlons maintenant de leur utilisation. Comment appeler une méthode en Java ? Méthodes en Java - 5Chaque méthode en Java appartient à une classe. Pour comprendre comment fonctionnent les appels de méthodes en Java, prenons un cours :
public class StringConstructor {
  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Puisque notre méthode n’est pas statique (il s’agit d’un sujet de discussion distinct qui dépasse le cadre de l’article d’aujourd’hui), pour l’appeler, vous devez d’abord créer un objet, puis appeler la méthode dessus :
class Application{
  public static void main(String[] args) {
     StringConstructor stringConstructor = new StringConstructor();
     stringConstructor.constructHelloSentence("Den");
  }
}
Dans les arguments de notre méthode, nous avons passé la chaîne (nom) que nous voulons voir dans la chaîne résultante affichée à l'écran :

Hello world! My name is Den
Il convient également de rappeler que les méthodes peuvent être réutilisées autant de fois que nécessaire - il n'y a aucune restriction.

ce

Vous pouvez souvent voir le mot-clé dans code this, comme dans les setters :
public void setValue(Long value) {
   this.value = value;
}
Et qu'est-ce que cela veut dire? thisen Java, il s'agit d'une référence à l'objet actuel de cette classe. Par exemple, si nous créons un objet :
StringConstructor stringConstructor = new StringConstructor();
alors thisà l'intérieur de l'objet stringConstructoril y aura un lien vers le même objet. thisest utilisé à la fois pour faire référence à une variable objet (comme dans le setter ci-dessus) et pour appeler une méthode. Nous pouvons réécrire un peu notre classe :
public class StringConstructor {

  public String constructHelloSentence(String name) {
     String resultSentence = this.getSentence()  + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  private String getSentence() {
     return "Hello world! My name is ";
  }
}
Grâce à nous this, nous appelons la méthode de cet objet pour prendre la chaîne requise. Mais néanmoins, en règle générale, cela n'est presque pas utilisé pour les méthodes, car même sans cela, il existe une référence à une méthode d'un objet donné ; il est principalement utilisé pour une variable d'objet.

Surcharge de méthode

Disons que nous avions besoin d'une méthode qui exécute essentiellement la même logique, mais dans un Hello world! à la place, worldnous voulons insérer notre propre mot (chaîne). Mais nous avons déjà une méthode constructHelloSentence. Alors, devons-nous trouver un nouveau nom pour une méthode qui exécute essentiellement la même fonctionnalité ? Quoi qu’il en soit : c’est à ce moment-là que la surcharge de méthodes nous vient en aide. Méthodes en Java - 7La surcharge de méthode consiste à utiliser le même nom de méthode plusieurs fois lors de sa déclaration dans une classe. Du point de vue de la syntaxe du langage, il ne peut y avoir deux noms identiques dans un espace local. Mais il est également possible de déclarer des méthodes avec les mêmes noms mais des arguments différents. En d’autres termes, une classe contient des surcharges lorsqu’il existe deux méthodes ou plus portant les mêmes noms mais des données d’entrée différentes :
public class Constructor {

  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  protected String constructHelloSentence(String firstName, String secondName) {
     String resultSentence = "Hello " + firstName + "! My name is " + secondName;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Nous voyons ici que les méthodes ne doivent pas nécessairement contenir le même modificateur d'accès (ainsi que le type de retour). Si une méthode surchargée est appelée, à partir de plusieurs méthodes déclarées, le compilateur détermine automatiquement celle requise en fonction des paramètres spécifiés lors de l'appel.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION