Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager

La notion de fonction et de méthode

On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du programme une série d'instructions, cela permet une simplicité du code et donc une taille de programme minimale. D'autre part, une fonction peut faire appel à elle-même, on parle alors de fonction récursive (il ne faut pas oublier de mettre une condition de sortie au risque sinon de ne pas pouvoir arrêter le programme...).

Une méthode est une fonction faisant partie d'une classe. Elle permet d'effectuer des traitements sur (ou avec) les données membres.

La déclaration d'une méthode

Avant d'être utilisée, une méthode doit être définie car pour l'appeler dans une classe il faut que le compilateur la connaisse, c'est-à-dire qu'il connaisse son nom, ses arguments et les instructions qu'elle contient. La définition d'une méthode s'appelle "déclaration". La déclaration d'une fonction se fait selon la syntaxe suivante :

type_de_donnee Nom_De_La_Methode(type1 argument1, type2 argument2, ...) {
			   liste d'instructions
}

Remarques:

  • type_de_donnee représente le type de valeur que la méthode est sensée retourner (char, int, float,...)
  • Si la méthode ne renvoie aucune valeur, on la fait alors précéder du mot-clé void
  • Une méthode doit obligatoirement porter un type de retour (sauf dans le cas des constructeurs)
  • le nom de la méthode suit les mêmes règles que les noms de variables :
    • le nom doit commencer par une lettre
    • un nom de méthode peut comporter des lettres, des chiffres et les caractères _ et $ (les espaces ne sont pas autorisés!)
    • le nom de la méthode, comme celui des variables est sensible à la casse (différenciation entre les minuscules et majuscules)
  • Les arguments sont facultatifs, mais s'il n'y a pas d'arguments, les parenthèses doivent rester présentes
  • Il ne faut pas oublier de refermer les accolades

  • Le nombre d'accolades ouvertes (méthode, boucles et autres structures) doit être égal au nombre d'accolades fermées!
  • La même chose s'applique pour les parenthèses, les crochets ou les guillemets!
Une fois cette étape franchie, votre méthode ne s'exécutera pas tant que l'on ne fait pas appel à elle quelque part dans la classe!

Appel de méthode

Pour exécuter une méthode, il suffit de faire appel à elle en écrivant son nom (une fois de plus en respectant la casse) suivie d'une parenthèse ouverte (éventuellement des arguments) puis d'une parenthèse fermée :

Nom_De_La_méthode();

Remarques:

  • le point virgule signifie la fin d'une instruction et permet au navigateur de distinguer les différents blocs d'instructions
  • si jamais vous avez défini des arguments dans la déclaration de la méthode, il faudra veiller à les inclure lors de l'appel de la méthode (le même nombre d'arguments séparés par des virgules!)
    Nom_De_La_méthode(argument1, argument2);

Java impose qu'une fonction qui ne retourne aucune valeur soit précédée du type void!

Les arguments d'une méthode

Il est possible de passer des arguments (appelés aussi paramètres) à une méthode, c'est-à-dire lui fournir une valeur ou le nom d'une variable afin que la méthode puisse effectuer des opérations sur ces arguments ou bien grâce à ces arguments.
Le passage d'arguments à une méthode se fait au moyen d'une liste d'arguments (séparés par des virgules) entre parenthèses suivant immédiatement le nom de la méthode.

Le nombre et le type d'arguments dans la déclaration, le prototype et dans l'appel doit correspondre, au risque, sinon, de génerer une erreur lors de la compilation...

Un argument peut être :

  • une constante
  • une variable
  • une expression
  • une autre méthode retournant une valeur

Renvoi d'une valeur par une méthode

La méthode peut renvoyer une valeur (et donc se terminer) grâce au mot-clé return. Lorsque l'instruction return est rencontrée, la méthode évalue la valeur qui la suit, puis la renvoie au programme appelant (classe à partir de laquelle la méthode a été appelée).

Une méthode peut contenir plusieurs instructions return, ce sera toutefois la première instruction return rencontrée qui provoquera la fin de l'exécution de la méthode et le renvoi de la valeur qui la suit.

La syntaxe de l'instruction return est simple :

return valeur_ou_variable;

Le type de valeur retourné doit correspondre à celui qui a été précisé dans la définition

La surcharge de méthode

Un des apports les plus intéressants du Java, hormis l'ajout du concept objet, est la possibilité d'appeler plusieurs méthodes avec le même nom, à condition que leurs arguments diffèrent (en type et/ou en nombre).
Ce principe est appelé surcharge de méthode. Il permet de donner le même nom à des méthodes comportant des paramètres différents et simplifie donc l'écriture de méthodes sémantiquement similaires sur des paramètres de type différent.

En effet, une méthode est déterminé par ce que l'on appelle sa signature, c'est-à-dire :

  • son nom
  • ses paramètres

Il est ainsi possible de définir une méthode réalisant la même opération sur des variables différentes en nombre ou en type :

int somme( int p1, int p2){
return (p1 + p2);

}

float somme( float p1, float p2){
return (p1 + p2);

}

float somme( float p1, float p2, float p3){
return (p1 + p2 + p3);

}

int somme( float p1, int p2){
return (int(p1) + p2);

}


Dernière modification le mardi 14 octobre 2008 à 17:40:31.Ce document intitulé « Java: Les méthodes » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Java : méthode painComponent jamais appelée Bonjour, Je sollicite votre aide car je suis légèrement bloqué sur un bout de code java Voilà, j'ai un JPanel tout ce qu'il y a de plus normal, j'y ajoute des données dans un gridLayout et j'y met une image de fond. Le problème est au niveau de... www.commentcamarche.net/forum/affich-2781018-java-methode-paincomponent-jamais-appelee
Methode static et non static en java (Résolu) Bonjour, je fait pas la différence entre une méthode static et une méthode non static en java pourriez vous m'expliquer c quoi la difference avec des exemples si vous pouvez ???? et merci d'avence www.commentcamarche.net/forum/affich-9193620-methode-static-et-non-static-en-java
[Java debutant] Aide pour écrire des méthodes Salut, Pourriez-vous s'il vous plait m'indiquer comment faire pour coder les méthodes de ces différentes interfaces En vous remerciant par avance Ligne de Commande du Logiciel La ligne de commande permet d'effectuer des requêtes sur un index java -jar... www.commentcamarche.net/forum/affich-2266728-java-debutant-aide-pour-ecrire-des-methodes
Le mot-clé static ou les attributs et méthodes de classe en POO(NOTE: Cet article explique la signification du mot-clé static au sein d'une classe. La signification de "static" en C n'a par exemple rien à voir.) Vous êtes débutant en programmation orientée objet. En Java, en C++...ou que sais-je encore.,... www.commentcamarche.net/faq/sujet-14564-le-mot-cle-static-ou-les-attributs-et-methodes-de-classe-en-poo
Classe abstraite et interface de javaBonsoir tt le monde , j'ai un peu du mal à comprendre les inerfaces et les classes abstraite en java j'ai lu pas mal du tutoriel et j'ai compris au niveau des methode (dans le classe fille on doit inpmlementer tout les methode de l'interface... www.commentcamarche.net/forum/affich-10082762-classe-abstraite-et-interface-de-java
Méthode repaint() dans javaEst ce que quelqu'un peut me dire pourquoi la méthode repaint() de awt.Component a du mal à marcher... Quand je l'appelle il ne se passe rien. Plus concrètement, j'ai un graphique dans une fenêtre, quand je redimensionne la fenêtre je voudrais... www.commentcamarche.net/forum/affich-68381-methode-repaint-dans-java
Interface graphique en java (Résolu)salut tout le monde, tout d abord, le programme est en java ensuite, j ai une fenetre graphique contenant un textfield, un bouton et une jinternalframe. l utilisateur rentre une serie de chiffre. losque qu il clic sur le bouton un graphique s affiche... www.commentcamarche.net/forum/affich-1446893-interface-graphique-en-java
Java - L'accessibilitéLa notion d'accessibilité Le concept d'accessibilité (généralement appelé encapsulation) définit la possibilité qu'a le concepteur d'une classe de restreindre l'accès à certaines données, ou plus généralement à certains éléments (méthodes, classes,... www.commentcamarche.net/contents/java/javaaccess.php3
Introduction à RMI (Remote Method Invocation)Introduction à RMI RMI (Remote Method Invocation) est une API Java permettant de manipuler des objets distants (c'est-à-dire un objet instancié sur une autre machine virtuelle, éventuellement sur une autre machine du réseau) de manière... www.commentcamarche.net/contents/rmi/rmiintro.php3
Java - Les packagesIntroduction aux packages La programmation Java consiste à créer des classes. Or, étant donné qu'un programme est généralement développé par une équipe de programmeurs, c'est-à-dire plusieurs personnes, le fait de concaténer (mettre bout à bout)... www.commentcamarche.net/contents/java/javapack.php3