Keyboard shortcuts

Touchez ← ou → pour naviguer les chapitres

Touchez S ou / pour chercher dans le livre

Touchez ? pour afficher ce message

Touchez Esc pour masquer ce message

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Ă©thodes println et print de l’objet System.out : on l’appel avec System.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 String sont des exemples communs, p. ex. : String s = "Bonjour"; s.length(); oĂč la mĂ©thode d’instance length est appellĂ©e sur l’objet s.

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 classe Math qui fournit plusieurs méthodes utilitaires comme Math.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, des Scanner et des File, 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.

VS Code suggestions Java

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

  1. 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 nom 4-3-String.png.
  2. Prenez une capture d’écran du terminal montrant votre session jshell aprĂšs avoir lancĂ© les commandes pour les mĂ©thodes statiques de Math dans les notes ci-dessus. Enregistrez l’image dans le dossier “captures” avec le nom 4-3-Math.png.

Utiliser les méthodes dans un programme

  1. CrĂ©er un fichier Methods.java dans 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 :
    
    */
    
  2. Lancez le programme et dĂ©crire ce qui s’est affichĂ© dans le commentaire de bloc suivant main.

  3. Parce qu’on n’est pas dans un REPL, pour voir le rĂ©sultat des mĂ©thodes il faut les afficher explicitement :

    1. 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.
    2. Au dĂ©but de la ligne pour chaque mĂ©thode, ajouter la dĂ©claration d’une variable du type appropriĂ©. P. ex., length retourne un int, donc vous pouvez ajouter int nameLength = name.length();. Faites la mĂȘme chose pour les endsWith (mais faites attention! endsWith retourne un boolean).
    3. Ajoutez une ou plusieurs instructions print, println ou printf pour afficher les valeurs des variables que vous avez dĂ©clarĂ©es Ă  l’étape prĂ©cĂ©dente.
  4. 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.

  5. 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.

© 2022-2025 David Crowley