Accueil > Programmer avec Java > Les bases de Java >
Utiliser des méthodes
Survol et attentes
Définitions
- Fonction
-
un bloc de code nommé. Certaines fonctions sont définies afin de prendre des informations en entrée (appelées arguments) ou pour retourner une valeur en sortie.
- Méthode
-
une fonction liée à une classe ou un objet. On appelle les méthodes avec la notation pointée, soit
objet.methode(), oĂč on suit le nom de lâobjet par un point et ensuite le nom de la mĂ©thode. Des exemples simples sont les mĂ©thodesprintlnetprintde lâobjetSystem.out: on lâappel avecSystem.out.println().Dans Java, parce que tout est dĂ©fini dans une classe, toutes les fonctions sont des mĂ©thodes. MĂȘmes les programmes oĂč on ne dĂ©clare pas une classe explicitement (comme les exemples dans ces notes de cours, Java dĂ©clare implicitement une classe pour nous qui emballe lâensemble de notre code).
- MĂ©thode dâinstance
-
une méthode qui est appellée sur un objet. Les méthodes pour manipuler les
Stringsont des exemples communs, p. ex. :String s = "Bonjour"; s.length();oĂč la mĂ©thode dâinstancelengthest appellĂ©e sur lâobjets. - MĂ©thode statique
-
une méthode qui est appellée sur la classe directement, soit
Classe.methodeStatique(). Vous pouvez les repérez si les conventions de nommage sont respectées : le nom précédant le point commence avec une majuscule. Un exemple commun est la classeMathqui fournit plusieurs méthodes utilitaires commeMath.sqrt(9). - Appel
-
utiliser le nom dâune mĂ©thode pour exĂ©cuter son bloc de code. Si la mĂ©thode prend des arguments, il faut fournir ces informations sĂ©parĂ©es par des virgules entre les parenthĂšses de lâappel. Si la mĂ©thode retourne une valeur, on peut utiliser lâappel pour reprĂ©senter cette valeur dans une expression, comme un calcul ou une assignation de valeur Ă une variable.
Objectifs dâapprentissage
Ă la fin de cette leçon vous devrez ĂȘtre en mesure de :
- Expliquer les termes âappelle de mĂ©thodeâ et âargumentâ.
- Distinguer les appels de mĂ©thodes statiques (sur des classes) et dâinstance (sur des objets).
CritĂšres de succĂšs
- Je peux utiliser des appels de mĂ©thodes statiques et dâinstance, avec ou sans arguments et avec ou sans valeur de retour efficacement dans mes programmes Java.
Utilise jshell
Câest mieux de testez les exemples ici dans le REPL jshell parce que les rĂ©sultats sont affichĂ©s immĂ©diatement un-par-un. Tapez une seule ligne de code Ă la fois et appuyez sur Enter pour voir le rĂ©sultat.
MĂ©thodes dâinstances de String
Voici quelques exemples de mĂ©thodes quâon peut utiliser avec des variables de type String :
String name = "David";
name.length(); // le nombre de caractĂšres
name.charAt(0); // le premier caractĂšre
name.toUpperCase();
// conserver le résultat dans une variable
String lowerName = name.toLowerCase();
Méthodes statiques de la classe Math
Voici quelques exemples de méthodes statiques de la classe Math :
Math.sqrt(9); // racine carrée ("square root") -> sqrt
Math.abs(-5); // valeur absolue (ignore le signe)
Math.pow(10, 3); // puissance ("power") -> pow... 10^3
// conserver le résultat dans une variable
double chance = Math.random(); // aléatoire entre 0.0 et 0.9999999
chance * 100; // changer l'échelle (0.0 à 99.9)
25 + chance * 25 // changer l'échelle et la valeur initiale (25.0 à 49.9)
Un regard sur les méthodes print
Est-ce que println est une mĂ©thode dâinstance ou une mĂ©thode statique?
System.out.println("Bonjour");
Câest une mĂ©thode dâinstance! La variable out dans la classe System est un objet de type PrintStream (placez votre curseur sur le mot out dans un programme Java complet pour voir son info-bulle), et les PrintStream ont une mĂ©thode println().
On verra plusieurs autres types de données dans le cours, comme des
Random, desScanneret desFile, qui ont aussi des mĂ©thodes dâinstance pour utiliser leurs objets.
Suggestions par votre EDI
Votre EDI devrait suggĂ©rer les mĂ©thodes dâinstance ou les mĂ©thodes statique possibles dĂšs que vous tapez le . aprĂšs le nom de lâobjet ou de la classe. Vous pouvez sĂ©lectionner une mĂ©thode dans la liste pour lâajouter Ă votre code source. Quand les mĂ©thodes sont affichĂ©es dans la bulle de suggestion, vous voyez aussi le type des arguments et le type de retour.

Par contre, ce que vous faites au terminal - notamment les sessions jshell - ne bénificie pas de cette fonctionnalité.
Les outils Java prennent une minute ou plus pour sâactiver pleinement aprĂšs lâouverture dâun projet dans VS Code. Ils ne sâactivent jamais pleinement si vous nâavez pas configurez lâextension pour se lancer en mode Standard au lieu dâHybrid. Si vous ne voyez rien ou vous voyez juste le message âLoadingâŠâ quand votre curseur est sur un nom comme
String, vous devrez attendre encore un peu.
Exercices
đ Tester la comprĂ©hension
aucun quiz de vérification des concepts ici encore
đ ïž Pratique
Travaillez dans le répertoire GitHub partagé par votre enseignant pour la pratique et les exercices
- Prenez une capture dâĂ©cran du terminal montrant les rĂ©sultats de votre session jshell aprĂšs avoir lancĂ© les commandes pour les mĂ©thodes dâinstance de
Stringdans les notes ci-dessus. Enregistrez lâimage dans le dossier âcapturesâ avec le nom4-3-String.png. - Prenez une capture dâĂ©cran du terminal montrant votre session jshell aprĂšs avoir lancĂ© les commandes pour les mĂ©thodes statiques de
Mathdans les notes ci-dessus. Enregistrez lâimage dans le dossier âcapturesâ avec le nom4-3-Math.png.
Utiliser les méthodes dans un programme
-
Créer un fichier
Methods.javadans votre dossier âpratiqueâ et y ajouter le contenu suivant :void main() { String name = "David"; // Remplacez "David" par votre prĂ©nom name.length(); name.endsWith("d"); // remplacer "d" par la lettre Ă la fin de votre nom name.endsWith("s"); // cette lettre doit ĂȘtre diffĂ©rente Ă la prĂ©cĂ©dente } /* Ajoutez vos commentaires sur le comportement ici : */ -
Lancez le programme et dĂ©crire ce qui sâest affichĂ© dans le commentaire de bloc suivant
main. -
Parce quâon nâest pas dans un REPL, pour voir le rĂ©sultat des mĂ©thodes il faut les afficher explicitement :
- Placez votre curseur sur le nom de chaque méthode (
length,endsWith) et attendre que la bulle dâinformation apparaisse. Vous trouverez le type de retour de chaque mĂ©thode. - Au dĂ©but de la ligne pour chaque mĂ©thode, ajouter la dĂ©claration dâune variable du type appropriĂ©. P. ex.,
lengthretourne unint, donc vous pouvez ajouterint nameLength = name.length();. Faites la mĂȘme chose pour lesendsWith(mais faites attention!endsWithretourne unboolean). - Ajoutez une ou plusieurs instructions
print,printlnouprintfpour afficher les valeurs des variables que vous avez dĂ©clarĂ©es Ă lâĂ©tape prĂ©cĂ©dente.
- Placez votre curseur sur le nom de chaque méthode (
-
Tapez âname.â et choisissez une autre mĂ©thode que vous nâavez pas encore utilisĂ©e parmis celles qui sont suggĂ©rĂ©es. Le but est simplement lâexploration et le transfert de ce que vous avez appris Ă un contexte ouvert. Ajouter une valeur appropriĂ©e pour le ou les arguments requis, au besoin. Ajoutez une dĂ©claration de variable pour le type de retour de cette mĂ©thode et affichez le rĂ©sultat.
-
Prenez une capture dâĂ©cran montrant le code final et les rĂ©sultats de votre programme au terminal. Enregistrez lâimage dans le dossier âcapturesâ avec le nom
4-3-Methods.png.