ICS3U

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 :

Critères de succès

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 :

1
2
3
4
5
6
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 :

1
2
3
4
5
6
7
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?

1
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 :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
     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.