Accueil > Programmer avec Java > Les bases de Java >
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).
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
.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)
.À la fin de cette leçon vous devrez être en mesure de :
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.
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();
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)
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
, desScanner
et desFile
, qui ont aussi des méthodes d’instance pour utiliser leurs objets.
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.
aucun quiz de vérification des concepts ici encore
Travaillez dans le répertoire GitHub partagé par votre enseignant pour la pratique et les exercices
String
dans les notes ci-dessus. Enregistrez l’image dans le dossier “captures” avec le nom 4-3-String.png
.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
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 :
*/
main
.length
, endsWith
) et attendre que la bulle d’information apparaisse. Vous trouverez le type de retour de chaque méthode.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
).print
, println
ou printf
pour afficher les valeurs des variables que vous avez déclarées à l’étape précédente.4-3-Methods.png
.