Méthode Java system.out.println()
-
Qu’est-ce que la méthode
System.out.println()
? -
Comment fonctionne
System.out.println()
? -
Rôle de
toString()
dans la méthodeprint()
- Sommaire
Ce tutoriel présente le fonctionnement de la méthode System.out.println()
en Java et répertorie quelques exemples de codes pour comprendre le sujet.
Le System.out.print()
est une méthode très fréquemment utilisée pour imprimer sur la console ou la sortie standard. Cette méthode est parfois appelée méthode de la ligne d’impression. En plus d’imprimer sur la console, la méthode println()
déplace le curseur sur une nouvelle ligne.
Dans ce tutoriel, nous allons essayer de comprendre le fonctionnement interne de cette méthode.
Qu’est-ce que la méthode System.out.println()
?
- Le
System.out.println()
peut être divisé en trois parties. - Le
System
est une classe finale du packagejava.lang
et il est automatiquement initialisé au démarrage de la JVM. LeinitializeSystemClass()
est utilisé pour l’initialiser. - La classe
System
contient une instance de la classePrintStream
. Cette variable d’instance est appeléeout
. Il est défini avec les modificateurspublic
,static
etfinal
.
class System {
public static final PrintStream out;
// More Code Below
}
La classe PrintStream
contient les méthodes print()
et println()
. Ces méthodes sont surchargées.
class PrintStream {
public void print(argument) {
// implementation
}
public void println() {
// implementation
}
// Overloaded print() and println() methods below
}
Ainsi, System.out
nous donne la variable d’instance out
de la classe PrintStream
. On peut alors appeler la méthode print()
ou println()
sur cette variable d’instance.
Comment fonctionne System.out.println()
?
- La classe
PrintStream
contient plusieurs méthodesprint()
etprintln()
surchargées. Ils diffèrent par le type de paramètres acceptés. - Le type de retour de chacun d’eux est nul.
- Une méthode surchargée existe pour tous les types primitifs.
- Il contient également une méthode surchargée pour imprimer les chaînes et une autre pour les objets.
Le code ci-dessous montre le fonctionnement des méthodes surchargées println()
.
public class PrintDemo {
public static void main(String args[]) {
int i = 10;
short s = 10;
long l = 10;
char c = 'A';
char[] charArr = {'A', 'B', 'C'};
boolean bool = true;
double d = 10.0;
float f = 10.0f;
String str = "hello";
Object o = new Object();
System.out.println(); // terminate the current line
System.out.println(i); // print integer
System.out.println(s); // print short
System.out.println(l); // print long
System.out.println(c); // print char
System.out.println(charArr); // print char array
System.out.println(bool); // print boolean
System.out.println(d); // print double
System.out.println(f); // print float
System.out.println(str); // print String
System.out.println(o); // print Object
}
}
Production:
10 10 10 A ABC true 10.0 10.0 hello java.lang.Object @433c675d
Arguments passés à la méthode println()
- Un débutant peut penser que les méthodes
print()
etprintln()
prennent un nombre variable d’arguments (varargs
), mais ce n’est pas le cas. - Par exemple, dans le code ci-dessous, nous essayons d’imprimer un entier, une chaîne et un caractère.
public class PrintDemo {
public static void main(String args[]) {
int i = 10;
String s = "hello";
char c = 'O';
System.out.println(i + s + c);
}
}
Production:
10helloO
- Mais nous ne faisons pas passer trois arguments différents. Une virgule sépare les arguments d’une méthode.
- Au lieu de cela, ils sont concaténés à l’aide de l’opérateur
+
dans la méthodeprintln()
. - L’opérateur
+
utilisé avec une chaîne conduira à la concaténation de chaînes et retournera une chaîne. - Dans le code ci-dessus, l’entier est d’abord concaténé avec la chaîne, et la chaîne résultante est à nouveau concaténée avec la variable char.
Une autre chose à noter est que l’argument passé à la méthode est évalué de gauche à droite. Donc, si les deux premières variables passées sont des entiers, alors l’addition arithmétique normale a lieu et le résultat de l’addition est concaténé avec la chaîne.
public class PrintDemo {
public static void main(String args[]) {
System.out.println(10 + 10 + "hello"); // first integer addition and then string concatenation
}
}
Production:
20hello
Mais la concaténation des chaînes aura lieu si deux autres entiers sont présents après la chaîne.
public class PrintDemo {
public static void main(String args[]) {
System.out.println(10 + 10 + "hello" + 1 + 1); // 20hello11 not 20hello2
}
}
Production:
20hello11
Nous pouvons appliquer la règle ci-dessous de gauche à droite pour calculer la sortie. Si aucune chaîne n’est présente, alors l’addition arithmétique normale a lieu.
(any data type + string) = (string + any data type) = (concatenated string)
Rôle de toString()
dans la méthode print()
Les méthodes print()
et println()
appellent implicitement la méthode toString()
sur l’argument. Il convertit l’argument en une chaîne. Ceci est très utile si nous voulons imprimer des instances de classe définies par l’utilisateur d’une manière particulière.
Nous pouvons surcharger la méthode toString()
dans notre classe pour imprimer notre objet dans différents formats. L’exemple suivant le démontre.
Exemple : sans remplacer la méthode toString()
.
class Demo {
String field1;
String field2;
Demo(String f1, String f2) {
this.field1 = f1;
this.field2 = f2;
}
}
public class PrintDemo {
public static void main(String args[]) {
Demo d = new Demo("f1", "f2");
System.out.print(d);
}
}
Production:
Demo@433c675d
Exemple : après avoir remplacé la méthode toString()
.
class Demo {
String field1;
String field2;
Demo(String f1, String f2) {
this.field1 = f1;
this.field2 = f2;
}
@Override
public String toString() {
return field1 + " " + field2;
}
}
public class PrintDemo {
public static void main(String args[]) {
Demo d = new Demo("f1", "f2");
System.out.print(d);
}
}
Production:
f1 f2
Sommaire
Les méthodes print()
et println()
font partie de la classe PrintStream
. Ils sont accessibles en utilisant la variable d’instance System.out
. Ces méthodes sont surchargées pour gérer différents types d’arguments. N’oubliez pas que ces méthodes ne prennent pas un nombre variable d’arguments. Dans ce tutoriel, nous avons appris comment fonctionnent les méthodes System.out.print()
et System.out.println()
.