System est une classe standard du JDK, out une variable statique de cette classe, qui représente une flux de caractères, qui, par défaut, se déverse dans la console (on peut très bien le rediriger vers un fichier, ou vers une liaison réseau, ou n'importe. print() est une méthode de la classe qui type out (java.io.PrintStream) qui permet d'envoyer (d'écrire) vers ce flux quelquechose (il existe plusieurs "versions" de print() avec des paramètres différents : print(String x) permet d'écrire une String, print(int i) permet d'écrire un entier, etc.
Pour faire plus simple, System.out.print("...") est le code qui permet d'écrire "..." dans la console, si on a pas changer la configuration standard d'éxécution.
PrintString, par contre, n'est pas standard en Java (d'ailleurs, cette écriture ne respecte pas les conventions Java de nom de méthode : on devrait avoir printString()). Il s'agit d'une méthode qui probablement est définie comme ça :
Mais ce n'est que de la supputation : sans avoir le code, ou sans avoir une documentation qui m'explique ce qu'elle fait, je ne peux que le deviner, en estimant que le nom a un rapport avec ce qu'elle fait. Et encore, je suis obligé de me poser plein de questions : ne serait-ce que "Est-ce que ça passe à la ligne à la fin ou pas ?", car cette méthode pourrait être définie comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public static void PrintString(String string) { System.out.println(string); }
Du point de vue du résultat, il n'y a pas de différence entre ces 2 programmes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public static void PrintString(String string) { System.out.print(string); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class Demo1 { public static void main(String[] args) { PrintSring("coucou"); } public static void PrintString(String string) { System.out.println(string); } }On a simplement une méthode qui fait quelque chose et qu'on appelle pour qu'elle fasse ce quelque chose : ici, elle ne fait rien d'autre que ce que fait très bien System.out.print. Il n'y a priori pas de raison pour créer une telle méthode, si ce n'est justement le problème du passage à la ligne. Peut-être que le but ici est d'éviter qu'on puisse se tromper et utiliser out.print() au lieu de out.println(), ou peut-être est ce simplement parce que tu n'as pas encore vu ces objets et méthodes en cours, et que ton prof a voulu simplifier l'exercice en donnant une méthode qui écrit à l'écran en demandant de l'appeler sans se poser plus de question, en attendant d'aborder ça plus complètement en cours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public class Demo2 { public static void main(String[] args) { System.out.println("coucou"); } }
Ensuite, il peut y avoir des raisons particulières pour utiliser une telle méthode plutôt que directement System.out.println() (ou print()) : par exemple, on peut afficher systématiquement la date et l'heure, au début de la ligne. Du coup, ce serait fastidieux d'avoir à le faire à chaque fois qu'on veut écrire quelque chose dans la console : le fait d'avoir une méthode qui le fait systématiquement, évite d'avoir à le répéter (et de risquer de l'oublier de temps en temps). Le but de la méthode peut également aussi être de masquer ce qu'elle fait, pour justement le changer facilement : par exemple, si ton prof modifie quelque chose (un paramètre par exemple, ou une bibliothèque) pour que ce que tu passes en paramètre passe directement dans un programme qui analyse ça et le compare à un résultat prévu, il peut corriger rapidement les exercices sans avoir à lire les résultats, un par un, dans la console pour les comparer à un résultat voulu (s'il a 30 élèves qui font 10 exercices chacun, j'espère pour lui qu'il fait bien comme ça).
Partager