Les méthodes représentent les actions
Les paramètres Java sont passés par valeur
Appeler une méthode en Java
Exemple de programme : calcul d'une somme
Les méthodes représentent les actions
En POO, les méthodes d'une classe servent à indiquer comment fonctionne un objet dans son environnement d'exécution. Dans le cas où l'on se restreint à utiliser Java comme un langage algorithmique, la classe représentant le programme principal, les méthodes représenteront les sous programmes du programme principal. C'est en ce sens qu'est respecté le principe de la programmation structurée.
Attention, il est impossible en Java de déclarer une méthode à l'intérieur d'une autre méthode comme en pascal; toutes les méthodes sont au même niveau de déclaration : ce sont les méthodes de la classe !
Typiquement une application purement algorithmique en Java aura donc cette forme :
(un programme principal "main" et ici, deux sous-programmes methode1 et methode2)Les méthodes type procédure (méthode pouvant avoir plusieurs paramètres en entrée, mais ne renvoyant pas de résultat) sont précédées du mot clef void :
Les autres méthodes (précédées d'un mot clef typé comme : int, char, byte, boolean,...) sont des fonctions pouvant avoir plusieurs plusieurs paramètres en entrée qui renvoient obligatoirement un résultat du type déclaré par le mot clef précédant le nom de la fonction :
Cette méthode possède 2 paramètres en entrée et renvoie un paramètre de type int.
Les paramètres Java sont passés par valeur
Rappellons le passage des paramètres par valeur entre un programme appelant (main ou tout autre méthode) et un sous programme (les méthodes)
En Java tous les paramètres sont passés par valeur (même si l'on dit que Java passe les objets par référence, en fait il s'agit très précisément de la référence de l'objet qui est passée par valeur). Pour ce qui est de la vision algorithmique de Java, le passage par valeur est la norme. Ainsi aucune variable ne peut être passée comme paramètre à la fois d'entrée et de sortie comme en Pascal.
Comment faire en Java si l'on souhaite malgré tout passer une variable à la fois en entrée et en sortie ?
Il faut la passer comme paramètre effectif (passage par valeur ), et lui réaffecter le résultat de la fonction. L'exemple suivant indique comment procéder :
soit la méthode précédente recevant un int et un char et renvoyant un int
Les instructions ci-dessous permettent de modifier la valeur d'une variable x à l'aide de la méthode "methode2" :
int x = 10;
// avant l'appel x vaut 10
x = methode2 ( x , '@');
// après l'appel x vaut 15Remonter
Soit on appelle la méthode comme une procédure en Pascal (avec ses paramètres effectifs éventuels), soit on l'appelle comme une fonction en utilisant son résulat. Reprenons les deux méthodes précédantes et appellons les :
Soit on peut appeler ces deux méthodes dans la méthode "main" :
Soit on peut les appeler dans une autre méthode "methode3" :
Exemple de programme : calcul d'une somme
avec méthodes procédure et fonction
Source recopiable (cliquez sur le lien)
Résultats d'exécution de ce progamme :
Bonjour
Somme = 12