Comment utiliser les méthodes en Java


  • Français


  • Une méthode en Java (appelée “fonction” dans de nombreux autres langages de programmation) est une portion de code qui a été regroupée et étiquetée pour être réutilisée. Les méthodes sont utiles car elles vous permettent d’effectuer la même action ou série d’actions sans réécrire le même code, ce qui signifie non seulement moins de travail pour vous, mais aussi moins de code à maintenir et à déboguer en cas de problème.

    Une méthode existe dans une classe, donc le code standard Java standard s’applique :

    package com.opensource.example;

    public class Example {
      // code here
    }

    Une définition de package n’est pas strictement nécessaire dans une simple application à un seul fichier comme celle-ci, mais c’est une bonne habitude à prendre, et la plupart des IDE l’appliquent.

    Par défaut, Java recherche un main méthode à exécuter dans une classe. Les méthodes peuvent être rendues publiques ou privées, et statiques ou non statiques, mais la méthode principale doit être publique et statique pour que le compilateur Java la reconnaisse et l’utilise. Lorsqu’une méthode est publique, elle peut être exécutée depuis l’extérieur de la classe. Pour appeler le Example classe au début du programme, son main doit être accessible, alors définissez-la sur public.

    Voici une démonstration simple de deux méthodes : une main méthode qui est exécutée par défaut lorsque le Example classe est invoquée, et une report méthode qui accepte les entrées de main et effectue une action simple.

    Pour imiter l’entrée de données arbitraires, j’utilise une instruction if-then qui choisit entre deux chaînes, en fonction du moment où vous démarrez l’application. En d’autres termes, le main La méthode configure d’abord certaines données (dans la vraie vie, ces données peuvent provenir d’une entrée utilisateur ou d’une autre méthode ailleurs dans l’application), puis “appelle” le report méthode, fournissant les données traitées en entrée :

    package com.opensource.example;

    public class Example {
      public static void main(String[] args) {
        // generate some data
        long myTime = System.currentTimeMillis();
        String weather;

        if ( myTime%2 == 0 ) {
          weather = "party";
        } else {
          weather = "apocalypse";
        }

        // call the other method
        report(weather);
      }

      private static void report(String day) {
        System.out.printf("Welcome to the zombie %s\n", day);
      }
    }

    Exécutez le code :

    $ java ./Example.java
    Welcome to the zombie apocalypse
    $ java ./Example.java
    Welcome to the zombie party

    Notez qu’il y a deux résultats différents à partir du même report méthode. Dans cette démonstration simple, bien sûr, il n’y a pas besoin d’une deuxième méthode. Le même résultat aurait pu être généré à partir de l’instruction if-then qui imite la génération de données. Mais lorsqu’une méthode exécute une tâche complexe, comme redimensionner une image dans une vignette, puis générer un widget à l’écran à l’aide de cette image redimensionnée, la “dépense” d’un composant supplémentaire a beaucoup de sens.

    Quand utiliser une méthode Java

    Il peut être difficile de savoir quand utiliser une méthode et quand simplement envoyer des données dans un flux ou une boucle Java. Si vous êtes confronté à cette décision, la réponse est généralement d’utiliser une méthode. Voici pourquoi:

    • Les méthodes sont bon marché. Ils n’ajoutent pas de surcharge de traitement à votre code.
    • Les méthodes réduisent le nombre de lignes de votre code.
    • Les méthodes sont spécifiques. Il est généralement plus facile de trouver une méthode appelée resizeImage que de trouver le code caché dans une boucle quelque part dans la fonction qui charge les images du lecteur.
    • Les méthodes sont réutilisables. Lorsque vous écrivez une méthode pour la première fois, vous pouvez pense il n’est utile que pour une tâche au sein de votre application. Cependant, au fur et à mesure que votre application grandit, vous pouvez vous retrouver à utiliser une méthode avec laquelle vous pensiez en avoir “fini”.

    Programmation fonctionnelle vs orientée objet

    La programmation fonctionnelle utilise des méthodes comme construction principale pour effectuer des tâches. Vous créez une méthode qui accepte un type de données, traite ces données et génère de nouvelles données. Enchaînez de nombreuses méthodes et vous obtenez une application dynamique et performante. Les langages de programmation comme C et Lua sont des exemples de ce style de codage.

    L’autre façon de penser à l’accomplissement de tâches avec du code est le modèle orienté objet, utilisé par Java. Dans la programmation orientée objet, les méthodes sont des composants d’un modèle. Au lieu d’envoyer des données d’une méthode à l’autre, vous créez des objets avec la possibilité de les modifier en utilisant leurs méthodes.

    Voici le même programme de démonstration d’apocalypse zombie simple d’un point de vue orienté objet. Dans l’approche fonctionnelle, j’ai utilisé une méthode pour générer des données et une autre pour effectuer une action avec ces données. L’équivalent orienté objet est d’avoir une classe qui représente une unité de travail. Cet exemple d’application présente un message du jour à l’utilisateur, annonçant que le jour apporte soit une fête zombie, soit une apocalypse zombie. Il est logique de programmer un objet “jour”, puis d’interroger ce jour pour connaître ses caractéristiques. Comme excuse pour démontrer différents aspects de la construction orientée objet, le nouvel exemple d’application comptera également le nombre de zombies qui se sont présentés à la fête (ou à l’apocalypse).

    Java utilise un fichier pour chaque classe, donc le premier fichier à créer est Day.javaqui sert d’objet Day :

    package com.opensource.example;

    import java.util.Random;

    // Class
    public class Day {
        public static String weather;
        public int count;

    // Constructor
      public Day() {
        long myTime = System.currentTimeMillis();

        if ( myTime%2 == 0 ) {
          weather = "paradise";
        } else {
          weather = "apocalypse";
        }
      }

    // Methods
      public String report() {
          return weather;
      }

      public int counter() {
        Random rand = new Random();
        count = count + rand.nextInt(100);

        return(count);
        }
    }

    Dans le Class section, deux champs sont créés : weather et count. La météo est statique. Au cours d’une journée (dans cette situation imaginaire), le temps ne change pas. C’est soit une fête, soit une apocalypse, et ça dure toute la journée. Le nombre de zombies, cependant, augmente au cours d’une journée.

    Dans le Constructor section, la météo du jour est déterminée. C’est fait en tant que constructeur parce que c’est censé ne se produire qu’une seule fois, lorsque la classe est initialement invoquée.

    Dans le Methods rubrique, la report La méthode ne renvoie que le bulletin météo tel que déterminé et défini par le constructeur. Les counter Cependant, la méthode génère un nombre aléatoire et l’ajoute au nombre de zombies actuel.

    Cette classe, en d’autres termes, fait trois choses très différentes :

    • Représente un “jour” tel que défini par l’application.
    • Définit un bulletin météo immuable pour la journée.
    • Définit un nombre de zombies sans cesse croissant pour la journée.

    Pour utiliser tout cela, créez un deuxième fichier :

    package com.opensource.example;

    public class Example {
      public static void main(String[] args) {
        Day myDay = new Day();
        String foo = myDay.report();
        String bar = myDay.report();

        System.out.printf("Welcome to a zombie %s\n", foo);
        System.out.printf("Welcome to a zombie %s\n", bar);
        System.out.printf("There are %d zombies out today.\n", myDay.counter());
        System.out.printf("UPDATE: %d zombies. ", myDay.counter());
        System.out.printf("UPDATE: %d zombies. ", myDay.counter());
      }
    }

    Parce qu’il y a maintenant deux fichiers, il est plus facile d’utiliser un IDE Java pour exécuter le code, mais si vous ne voulez pas utiliser un IDE, vous pouvez créer votre propre fichier JAR. Exécutez le code pour voir les résultats :

    Welcome to a zombie apocalypse
    Welcome to a zombie apocalypse
    There are 35 zombies out today.
    UPDATE: 67 zombies. UPDATE: 149 zombies.

    Le “temps” reste le même quel que soit le nombre de fois où report est appelée, mais le nombre de zombies en liberté augmente à mesure que vous appelez la méthode counter méthode.

    Méthodes Java

    Les méthodes (ou fonctions) sont des constructions importantes en programmation. En Java, vous pouvez les utiliser soit dans le cadre d’une classe unique pour le codage de style fonctionnel, soit dans plusieurs classes pour le code orienté objet. Les deux styles de codage sont des perspectives différentes pour résoudre le même problème, il n’y a donc pas de bonne ou de mauvaise décision. Par essais et erreurs, et après un peu d’expérience, vous apprenez lequel convient le mieux à un problème particulier.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

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

    Copy code