Comment utiliser des méthodes qui prennent des paramètres en java

UN paramètre

Sommaire

est une valeur que vous pouvez passer à une méthode en Java. Ensuite, le procédé peut utiliser le paramètre comme si elle était une variable locale initialisée avec la valeur de la variable qui lui est passé par la méthode appelante.

L'application devinettes jeu a une méthode nommée getRandomNumber qui renvoie un nombre aléatoire entre 1 et 10:

public static int getRandomNumber () {return (int) (Math.random () * 10) + 1-}

Cette méthode est utile, mais il serait encore plus utile si vous pouviez lui dire la gamme de numéros que vous voulez que le numéro aléatoire pour tomber Il serait bon d'appeler la méthode de ce genre pour obtenir un nombre aléatoire entre 1 et 10.:

int nombre = getRandomNumber (1, 10) -

Ensuite, si votre programme doit lancer les dés, vous pouvez appeler la même méthode:

int nombre = getRandomNumber (1, 6) -

Ou, pour prendre une carte au hasard à partir d'un jeu de 52 cartes, vous pourriez l'appeler comme ceci:

int nombre = getRandomNumber (1, 52) -

Vous ne voudriez pas avoir à commencer par 1, soit. Pour obtenir un nombre aléatoire entre 50 et 100, vous appelez la méthode comme ceci:

int nombre = getRandomNumber (50, 100) -

Déclaration de paramètres

Une méthode qui accepte des paramètres doit énumérer les paramètres dans la déclaration de méthode. Les paramètres sont placés dans un liste de paramètres à l'intérieur des parenthèses qui suivent le nom de méthode. Pour chaque paramètre utilisé par la méthode, vous énumérez le type de paramètre suivi par le nom du paramètre. Si vous avez besoin de plus d'un paramètre, vous séparez les paramètres par des virgules.

Voici une version de la getRandomNumber Procédé acceptant les paramètres:

public static int getRandomNumber (int min, int max) {return (int) (Math.random () * (max - min + 1)) + mi-}

Voici la méthode utilise deux paramètres, tous deux de type int, nommé min et max. Ensuite, l'intérieur du corps de la méthode, ces paramètres peuvent être utilisés comme si elles étaient des variables locales.

Les noms que vous utilisez pour les paramètres peuvent être les mêmes que les noms que vous utilisez pour les variables que vous passez à la méthode lorsque vous l'appelez, mais ils ne doivent pas l'être. Vous pourriez appeler l' getRandomNumber méthode comme ceci:

int min = 1 int nombre max = 10 int = getRandomNumber (min, max) -

Ou vous pourriez l'appeler comme ceci:

int faible = 1 int haute = nombre de 10 int = getRandomNumber (bas, haut) -

Ou vous pourriez passer avec les variables tout à fait et il suffit de passer des valeurs littérales à la méthode:

int nombre = getRandomNumber (1, 10) -

Vous pouvez également spécifier des expressions que les valeurs des paramètres:

int min = 1 int max = 10 int nombre = getRandomNumber (min * 10, * 10 max) -

Ici nombre est attribué une valeur comprise entre 10 et 100.

Matte de loin paramètres

La portée d'un paramètre est le procédé pour lequel le paramètre est déclaré. En conséquence, un paramètre peut avoir le même nom que les variables locales utilisées dans d'autres procédés sans provoquer de conflits. Considérez ce programme:

public class ParameterScope {static void main (String [] args) {int publics min = 1 int max = 10 int nombre = getRandomNumber (min, max) -System.out.println (nombre) -} public static int getRandomNumber ( int min, int max) {return (int) (Math.random () * (max - min + 1)) + mi-}}

Ici, le principal méthode déclare variables nommées min et max, et le getRandomNumber utilisation de méthodes min et max pour ses noms de paramètres. Cela ne cause pas de conflit, parce que, dans chaque cas, le champ d'application est limité à une seule méthode.

Comprendre passe par valeur

Lorsque Java passe une variable à une méthode via un paramètre, la méthode elle-même reçoit une copie de la valeur de la variable, pas la variable elle-même. Cette copie est appelé passer par valeur, et il a une conséquence importante: Si une méthode change la valeur qu'il reçoit en tant que paramètre, que le changement est pas reflété dans la variable d'origine qui a été transmis à la méthode. Ce programme peut aider à éclaircir ce point:

ChangeParameters public class {public static void main (String [] args) {int nombre = 1-tryToChangeNumber (nombre) -System.out.println (nombre) -} public static void tryToChangeNumber (int i) {i = 2-}}

Voici une variable nommé nombre est réglé sur 1 puis transmis à la méthode nommée tryToChangeNumber. Cette méthode reçoit la variable comme un paramètre nommé je puis définit la valeur de je à 2. Pendant ce temps, dans le principal Procédé, println est utilisé pour afficher la valeur de nombre après le tryToChangeNumber retour de la méthode.

Car tryToChangeNumber obtient seulement une copie de nombre, pas le nombre variable elle-même, ce programme affiche le suivant sur la console: 1.

Le point clé est la suivante: Même si la tryToChangeNumber méthode modifie la valeur de son paramètre, ce changement n'a aucun effet sur la variable d'origine qui a été passé à la méthode.


» » » » Comment utiliser des méthodes qui prennent des paramètres en java