← (précédent) A.10 Les tableaux (2) : exercices corrigés tableaux uni et bi dimensionnels
B.1 Exercices corrigés sur l'écriture de méthodes.
Accueil S O M M A I R E

B.0 Ecriture de méthodes

Jusqu'ici, je vous ai parlé de méthodes (par exemple, les méthodes de la classe Math) et de fonctions. Une méthode et une fonction, dans le sens le plus général, signifient la même chose. Mais en Java, on parle de fonction lorsque la méthode fournit un résultat. C'est quasiment toutes les méthodes de la classe Math. Donc une fonction est forcément une méthode alors que la réciproque n'est pas forcément vraie.

A partir de maintenant, sauf erreur de ma part, nous parlerons de méthode. Je vais m'abstenir de parler de fonction.

Comment et pourquoi écrire des méthodes ?

Immaginez un programme informatique dans lequel il arrive qu' on écrive un ensemble d' instructions de 10 lignes (parfois bien plus). Vous avez vu des boucles for ou if ou while. A l'intérieur de ces boucles, vous avez vu un ensemble de seulement quelques lignes de code.
Imaginez maintenant que cet ensemble d' instructions se retrouvent jusqu' à 100 fois (parfois, bien plus) dans le même programme. Parce qu' on veut exécutez 10 fois ces instructions. On a donc 100 lignes rien que pour cet ensemble d' instructions. Si ce n' est que ça, pas bien grage me direz-vous. Un copier-coller résoudra le problème en 2 temps, 3 mouvements.

Imaginez maintenant que pour une raison quelconque, vous ayez envie de changer l' une des lignes de cet ensemble d' instructions. Vous serez bien obligé de faire ça une dizaine de fois. Sur un programme informatique de plus de 1 000 lignes par exemples, il faudra les trouver ces instructions à changer. Même si votre programme est le plus aéré et le plus commenté (des lignes de commentaires) possible, ce ne sera pas de tout repos.
Et je me limite à un ensebles de 10 instructions 10 fois. Cela pourrait prendre des porprtions insoupçonnées dans un grand logiciel commercial tel qu' un navigateur Internet ou le logiciel de gestion des vols d' une grande compagnie aérienne ou de gestion du personnel d' une multi nationale tel que Google.
Si vous êtes débutants en programmation, vous n' avez même pas idée de l' importance d' un grand logiciel. Ne soyez pas étonné qu' on vous parle de 50 000 lignes de code. La maintenance de ce logiciel peut rapidement devenir un travail de titan.

C' est pourquoi l' écriture de méthodes est primordiale en programmation. Par exemple, vous regroupez 100 lignes d' instructions dans une méthode. Puis vous utilisez simplement le nom de la méthode pour exécuter les 100 lignes.
Exemple : lorsque vous écrivez int a = Math.sqrt(b); . Vous utilisez une seule ligne pour invoquer la méthode Math.sqrt(). Mais dans la définition de cette méthode, combien de lignes sont utilisées ? Ici, on n' en sait rien. c' est une méthode prédéfinie par les créateurs de Java. On ne connaît pas le code.

Si votre méthode possède 100 lignes de code, et que vous voulez changer une ligne de code, se sera simple de changer une seule ligne. Si votre méthode est utilisée 100 fois dans votre programme, vous n'aurez pas besoin de changer 1 fois 100 lignes. Parce que sur les 100 fois la méthode utilisée, il n'y a pas de code. Il n'ya que l'écriture du nom de la méthode. Les 100 lignes de code de la méthode sont écrites une seule fois et placées dans un endroit précis de votre programme.

Fin des commentaires et commençons l'apprentissage de l'écriture des méthodes

EXERCICE 1

Ecrivons une méthode f qui, à tout nombre réel x, associe un nombre réel y = x2. Donc son carré.
CORRECTION 1

En mathématiques, on écrira : 

f : R --> R
    x --> y = x2

En java, on fera :

1.     public static double f(double x)
2.     {
3.          double y = x * x;
4.          return y;
5.     }	
En maths, R, ensemble de départ. R, ensemble d' arrivée. x appartient à R et y appartient R. R étant l' ensemble des nombres réels.

En java, lorsqu' on écrit une méthode, on commence par la déclarer. Voir ligne 1. Généralement, on déclare une méthode à l' aide de 4 mots.

Le premier mot = public ou private ou protected. En P.O.O on utilisera l' un des trois mots. Tant qu' onn' est pas en P.O.O (programmation orientée objet), contentez-vous du mot public.

Ensuite, le deuxième mot est : static. En P.O.O, ce mot disparaît ou presque. En P.O.O, très peu de méthodes contiennent dans leur déclaration le mot static. Je vous expliquerais mieux pourquoi le mot static, lorsqu' il s' agira de ne plus l' utiliser.

Le troisième mot est le type du résultat fournit par la méthode. Ici, le type est double

Le quatrième mot de la déclaration d' une méthode est forcément le nom de la méthode. Ici, la méthode s' appelle f.

Lorsque nous avons utilisé les méthodes prédéfinies (Notament, celles des classes Math et String), je vous ai parlé des méthodes qui fournissent un résultat et celles qui n' en fournissent pas. Lorsqu' une méthode fournit un résultat, la dernière instruction de sa définition est forcément return resultat; resultat étant le nom de la variable dont le contenu est le résultat fournit pas la méthode. La définition d' une méthode, c' est l' ensemble des instructions de cette méthode. C' est donc l' ensemble des instructions qu' on voit entre les accolades (ouverte et fermée) qu' on voit en dessous de la déclaration de cette méthode. Ici, la méthode f a comme définition, les lignes 3 et 4.

Revenons à la déclaration de la méthode. Le nom de la méthode est toujours suivie des parenthèses à l' intérieur desquelles on met (on déclare) les paramètres éventuels.

PRECISONS :
La déclaration d' une variable est toujours suivie d' un point virgule. Exemple : int a; Pas celle d' une méthode. ligne 1
La déclaration des variables, paramètres d' une méthode, n' est jamais suivie de point virgule.
Les paramètres d' une méthode sont appelés les arguments ou paramètres muets. Muet parce qu' il n' y a pas de valeur. Tout comme on a écrit f en mathématiques, il n' y a pas eu de valeur. On utilise des valeurs lorsqu' on veut l' image de x. Par ex, f(2.5) = 6.25
En java, j' utilise la méthode f en mettant son résultat dans une variable. Ex : double a = f(2.5); f(2.5) fournit la valeur 6.25. La variable a est ainsi affectée de la valeur 6.25.
Le nombre d' arguments d' une méthode peut être égal à zéro. Ce n' est pour ça qu' on supprimera les parenthèses. Le nom d' une méthode doit doit toujours être suivi des parenthèses. Même lorsque l' on ne déclare pas la méthode. Par exemple, la méthode main() contient toutes les instructions d' un programme.

Lorsqu' une méthode ne fournit aucun résultat, le troisième mot est void. Ce mot est anglais et veut dire vide. Mais il prend surtout le sens de rien en programmation. La méthode ne fournit rien, donc, void.

Autre chose : En math, R est l' ensemble des nombres réels. En java, c' est le type double ou float. Mais quand on ne sait pas lequel choisir, on prend double par défaut.

On dit aussi que le type de la variable retournée est aussi le type de la méthode. Ainsi, la méthode main() est toujours de type void. D' où la déclaration : public static void main(String [] args).
EXERCICE 2

Ecrire une méthode qui à tout couple de nombres réels (x, y), associe le nombre réel z = xy. Le produit de x par y.
CORRECTION  2

En mathématiques, on écrira : 

g : R x R --> R
    (x, y) --> y = xy

En java, on fera :

1.     public static double g(double x, double y)
2.     {
3.          double z = x * y;
4.          return z;
5.     }	
Si j' utilise cette méthode dans la méthode main() par exemple, je ferais : double a = g(2.2, 3.1); Et la valeur 6.82 sera affectée à la variable a.
Conseil : Donnez toujours à votre méthode, un mot significatif. Un mot qui donne des indications sur ce que fait la méthode. Sur les deux premiers exemples, j' ai voulu passer des maths à la programmation.

Autre notion de vocabulaire. Lorsqu' on dit qu' une méthode fournit un résultat, on peut aussi dire que la méthode renvoie un résultat ou encore que la méthode retourne un résultat. C' est le mot retourner qui est d' ailleurs utilisé en java. Le mot clé return veut justement dire retourner.
La connaissance, c'est bien. La partager, c'est mieux
Conseiller ce site à un(e) ami(e):

Son e-mail est :       
Une suggestion à faire pour ce site ? ... Contact : webmaster@debutantprog.com
← (précédent) A.10 Les tableaux (2) : exercices corrigés tableaux uni et bi dimensionnels
B.1 Exercices corrigés sur l'écriture de méthodes.
Accueil S O M M A I R E

B.0 Ecriture de méthodes