Méthode (Method)

Une méthode est un bloc de code nommé. Vous pouvez exécuter ce bloc en appelant son nom depuis un autre endroit du programme, transmettre des données à la méthode et récupérer les valeurs renvoyées par celle-ci.

Composition d’une méthode

Comme indiqué précédemment, une méthode est un membre fonctionnel d’une classe.

Une méthode est avant tout une fonction. On parle de « méthode » lorsque cette fonction appartient à une classe. Dans le langage C, on les appelle simplement fonctions.

Une méthode se divise en deux parties essentielles : l’en-tête de méthode (déclaration de la méthode) et le corps de la méthode.

  1. En-tête de méthode : Il définit toutes les caractéristiques de la méthode et contient ces informations :
    • Précise si la méthode retourne une valeur ; dans l’affirmative, le type de retour doit être spécifié
    • Le nom de la méthode
    • Les types de données transmissibles en entrée et en sortie, ainsi que les règles de traitement des données
  2. Corps de la méthode : Il est constitué d’une suite d’instructions exécutables. L’exécution commence par la première instruction du corps et se déroule de manière séquentielle.

Voici un exemple

    string Introduce(string name,int age)
    {
        string words = $"hello my name is {name},i'm {age} years old";
        Console.WriteLine(words);
        return words;
    }Langage du code : C# (cs)

En-tête de méthode : string Introduce(string name,int age)

  • string : Type de retour, chaîne de caractères
  • Introduce : Nom de la méthode
  • (string name,int age) : Liste des paramètres. Ces deux éléments sont des variables qui reçoivent le nom et l’âge transmis depuis l’extérieur, utilisables ensuite dans le corps de la méthode.
L’illustration ci-dessus explique chaque composant d’une méthode

Comment appeler cette méthode ?

Cette méthode appartient à la classe Program, au même niveau que la méthode Main. Or Main est une méthode statique. Une méthode statique ne peut pas appeler directement une méthode non statique. Pour appeler Introduce, vous devez d’abord créer une instance de Program, puis invoquer la méthode via cette instance.

class Program
{
    static void Main()
    {
        Program program = new Program();
        program.Introduce("John", 30);
    }

    string Introduce(string name,int age)
    {
        string words = $"hello my name is {name},i'm {age} years old";
        Console.WriteLine(words);
        return words;
    }
}Langage du code : C# (cs)

Un appel direct tel que ci-dessous entraîne une erreur de compilation

La bonne solution consiste à instancier Program avec new au sein de Main, puis à appeler Introduce à travers cette instance

Program program = new Program();//√
program.Introduce("John", 30);Langage du code : C# (cs)

Corps de la méthode

Le corps d’une méthode peut contenir zéro ou plusieurs instructions exécutables.

Le corps de la méthode est un bloc de code (ensemble d’instructions entre accolades). Ce bloc peut contenir les éléments suivants :

  • Variables locales
  • Structures de contrôle de flux (boucles, branchements, etc.)
  • Appels d’autres méthodes
  • Sous-blocs de code imbriqués
  • Fonctions locales (sous-méthodes définies dans une méthode) [à étudier plus tard]
class Program
{
    static void Main()
    {
        int age = 3; // Variable locale, valeur initiale 3
        while (age > 0) // Structure de contrôle
        {
            --age;
            Introduce("Tom", age); // Appel de méthode
        }

        {
            //Sous-bloc de code imbriqué
        }
    }

    static string Introduce(string name,int age)
    {
        string words = $"hello my name is {name},i'm {age} years old";
        Console.WriteLine(words);
        return words;
    }
}
Langage du code : JavaScript (javascript)

Dans le code ci-dessus, on a ajouté le mot-clé static devant Introduce pour en faire une méthode statique. On peut alors l’appeler directement depuis Main sans créer d’instance préalablement.


Variables locales (Local Variables)

Tout comme les champs d’instance vus précédemment, les variables locales servent à stocker des données. Les champs d’instance conservent généralement l’état d’un objet, tandis que les variables locales ne conservent que des données temporaires pour des calculs ponctuels.

Lorsque l’exécution de la méthode contenant des variables locales s’achève, ces variables sont dépilées. Les variables de type valeur sont détruites immédiatement ; celles de type référence seront nettoyées par le ramasse-miettes à un moment ultérieur.

1. Syntaxe de déclaration des variables locales
Type NomVariable = ValeurInitiale;
  • NomVariable : Identifiant défini par l’utilisateur
  • = ValeurInitiale : Initialiseur facultatif permettant d’affecter une valeur de départ à la variable

2. Règles principales des variables locales

  1. Cycle de vie et portée : N’existent qu’à l’intérieur du bloc où elles sont déclarées, ainsi que dans tous les sous-blocs imbriqués
    • La variable devient opérationnelle à la ligne où elle est déclarée
    • Lorsque le bloc de code termine son exécution, la variable cesse d’exister et est détruite
  2. Emplacement de déclaration libre : Peuvent être déclarées n’importe où dans le corps de la méthode, mais il faut les déclarer avant de les utiliser
    static void Main()
    {
        int age = 3; // Variable locale
        Phone p = new Phone(); // Variable locale de type personnalisé

        {
            int one = 1; // Variable locale appartenant au sous-bloc
            bool two = false;
        }

        double d = 0;
    }Langage du code : JavaScript (javascript)
Après exécution du sous-bloc imbriqué de l’illustration, les variables locales one et two sont dépilées et détruites

Champs d’instance vs Variables locales

Champ d’instanceVariable locale
Cycle de vieCréé lors de l’instanciation de l’objet ;
détruit quand l’objet n’est plus accessible
Activé à la ligne de déclaration ;
détruit quand son bloc de code termine l’exécution
Initialisation par défautLe compilateur affecte automatiquement une valeur par défaut du type correspondantPas d’initialisation automatique ;
utiliser une variable non initialisée provoque une erreur de compilation
Stockage mémoireToujours stocké sur le tas (Heap),
aussi bien pour les types valeur que référence
Type valeur : sur la pile (Stack) ;
Type référence : référence sur la pile, données de l’objet sur le tas

Méthode (Method)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *