web-dev-qa-db-fra.com

Quelle est la signification de System.out.println en Java?

Est-ce que cette fonction println statique dans out classe à partir de System espace de noms?

 namespace System {
 class out {
 printbln statique ... 
} 

Comment puis-je interpréter ce nom? Et où dans JRE cette fonction est définie? Dans Java.lang.System/Java.lang.Object?

58
prosseek

En fait, out est un membre statique de la classe System (contrairement à .NET), qui est une instance de PrintStream. Et println est une méthode normale (surchargée) de la classe PrintStream.

Voir http://download.Oracle.com/javase/6/docs/api/Java/lang/System.html#out .

En fait, si out/err/in étaient des classes, elles seraient nommées avec un caractère de majuscule (Out/Err/In) en raison de convention de nommage (en ignorant la grammaire).

85
kennytm

System est une classe qui a un champ statique public out. Donc ça ressemble plus à

class System 
{
    public static PrintStream out;
}

class PrintStream
{
    public void println ...
}

Ceci est une légère simplification excessive, car la classe PrintStream est en fait dans le Java.io package, mais il est assez bon pour montrer la relation de choses.

48
cHao

Vérifiez le lien suivant:

http://download.Oracle.com/javase/1.5.0/docs/api/Java/lang/System.html

Vous verrez clairement que:

System est une classe dans le Java.lang paquet.

out est un membre statique de la classe System et constitue une instance de Java.io.PrintStream.

println est une méthode de Java.io.PrintStream. Cette méthode est surchargée pour imprimer le message vers la destination de sortie, qui est généralement une console ou un fichier.

26
YoK

System.out.println ()

compréhension de haut nivea

Pour comprendre cela, nous devons rappeler quelques bases de Java:

  • opérateur point (.) en Java: In Java. (opérateur point) est utilisé uniquement pour appeler des méthodes ou des variables. Nous pouvons donc dire que la méthode est soit une variable.
  • Méthodes in Java: nous savons que les méthodes ont toujours une parenthèse '()' après le nom de la méthode, donc out ne peut pas être une méthode en Java. Donc, c'est une variable et println () est une méthode.
  • Nom de la classe en Java: Le nom de la classe doit commencer par une lettre majuscule, idéalement en Java, Donc, System est une classe.

Maintenant, avec la connaissance de base de Java nous savons:

  • Le système est une classe
  • out est une variable
  • println () est une méthode

Permet d'obtenir plus de détails:

variable out: statique ou instance?

  • appelé en utilisant le nom de la classe, nous connaissons donc sa variable statique de la classe System.

  • mais en appelant une méthode println (), la méthode so ‘out’ est un objet du type référence PrintStream.

la classe System appartient au package Java.lang

class System {
  public static final PrintStream out;
  //...
}

la classe Prinstream appartient au package Java.io

class PrintStream{
public void println();
//...
}
26
VdeX

println et print sont les deux méthodes surchargées qui appartiennent à la classe PrintStream .

Pour y accéder, nous avons besoin d'une instance de cette classe.

Une propriété statique appelée out de type PrintStream est créée sur le System classe.

Par conséquent, pour accéder aux méthodes ci-dessus, nous utilisons les instructions suivantes:

System.out.println("foo");
System.out.print("foo");
7
Omprakash.K
System.out.println("Hello World");
  1. System: C'est le nom de la classe standard qui contient les objets qui encapsule la norme I/O appareils de votre système.

Il est contenu dans le paquet Java.lang. Comme le paquet Java.lang Est importé dans chaque Java par défaut, Paquet Java.lang est le seul package de Java qui ne nécessite pas de déclaration d'importation.

  1. out:L'objet out représente le flux de sortie (fenêtre i.e Command) et est le membre de données statique de la classe System.

Alors notez ici System.out (System -Class & out- objet statique, c’est-à-dire pourquoi il est simplement désigné par nom de classe et nous n’avons pas besoin de créer d’objet ).

  1. println:La println() est méthode de out objet qui prend la chaîne de texte en argument et l’affiche sur la sortie standard i.e sur l'écran du moniteur.

Remarque
System -Class
out -static Object
println() -méthode
Rappelez-vous une fonction (dans Java est appelée méthode) a toujours le format une fonction()

4
Isabella Engineer

System est une classe du paquet Java.lang

out est un objet static de PrintStream class dans le package Java.io

println() est une méthode de la classe PrintStream

2
being_j

System est une classe du paquet Java.lang, out est un objet de PrintStream class et également static membre de data de System class, print() et println() est une méthode d'instance de PrintStream class. il fournit une sortie logicielle sur console.

2
Dushyant

System est une classe dans Java.lang package. Et out est un objet PrintStream. Belle explication @ http://lazy-geeks.blogspot.in/2015/01/what-is-systemoutprintln.html

1
pavan
System.out.println();

System est la classe

out est une variable de la classe System et il s'agit d'un static et le type de variable est PrintStream .

Voici la variable out dans la classe System:

public final static PrintStream out = null;

Vous pouvez voir l'implémentation de System ici .

println() est une méthode surchargée dans PrintStream class.

PrintStream inclut trois méthodes d'impression surchargées, à savoir:

  1. print()
  2. println()
  3. printf()

Vous pouvez voir implémentation de PrintStream ici .

Vous ne pouvez pas instancier la classe System et il s'agit de la classe enfant de Object et le Object est le père (la superclasse) de toutes les classes, y compris les classes que vous avez définies.

Voici ce que dit la documentation Oracle:

public final class System extends Object

La classe System contient plusieurs champs et méthodes de classe utiles. Il ne peut pas être instancié.

Parmi les fonctionnalités fournies par la classe System figurent les flux d'entrée standard, de sortie standard et de sortie d'erreur; accès aux propriétés et variables d'environnement définies en externe; un moyen de charger des fichiers et des bibliothèques; et une méthode utilitaire pour copier rapidement une partie d’un tableau.

Depuis: JDK1.0

Si vous ne savez pas que signifie instancier, lisez cette question . C'est une question C # mais le concept est le même.

Aussi, Quelle est la différence entre une instance et un objet?

Si vous ne savez pas que signifie "surcharge", lisez cette question .

1
Blasanka

Comme out est appelé avec le nom de classe System, et non comme une instance de classe (un objet), So out doit donc être une variable statique appartenant à la classe System. . out doit être une instance d'une classe, car elle appelle la méthode println().

// the System class belongs to Java.lang package
class System {
    public static final PrintStream out;
}
class PrintStream {
    public void println();
}
1
user1527047

Il est assez simple de comprendre la question, mais pour y répondre, nous devons creuser plus profondément dans Java).

  • System est une classe statique et ne peut pas être instancié
  • out est une variable de référence définie dans System
  • println() est la méthode utilisée pour imprimer sur une sortie standard.

Un explication brève et intéressante est toujours le bienvenu, car nous pouvons apprendre beaucoup de cette simple ligne de déclaration!

1
Shyam

System: est une classe prédéfinie de Java.lang paquet.

out: est un membre static de la classe printStream et se connecte à la console.

Println: est une méthode de printstream class et ce n'est pas un static.

0
user3819423

System est une classe du paquet Java.lang.

out est le membre de données statique dans System class et la variable de référence de PrintStream class.

Println() est une méthode normale (surchargée) de PrintStream class.

0
mohd zeeshan

Dans le javadoc à propos de System, voici ce que dit la doc:

public final class System
extends Object

The System class contains several useful class fields and methods. It cannot be instantiated.
Among the facilities provided by the System class are standard input, standard output, and error output streams; access to externally defined properties and environment variables; a means of loading files and libraries; and a utility method for quickly copying a portion of an array.

Since:
JDK1.0

En ce qui concerne System.out

public static final PrintStream out

The "standard" output stream class Prinstream  belongs to Java.io package. This stream is already open and ready to accept output data. 
When the JVM is initialized, the method initializeSystemClass() is called that does exactly what it’s name says – it initializes the System class and sets the out variable. The initializeSystemClass() method actually calls another method to set the out variable – this method is called setOut().
Typically this stream corresponds to display output or another output destination specified by the Host environment or user.

En ce qui concerne println ();

class PrintStream{
public void println();
}

Pour les applications simples Java autonomes), une méthode classique pour écrire une ligne de données en sortie est la suivante:

System.out.println(data);
0
Nagaraja G Devadiga

System.out.println ("...") in Java est traduit en JVM. Explorer la JVM m'a permis de mieux comprendre ce qui se passe derrière le capot.

Extrait du livre Programmation de la Java machine virtuelle . Ce code est copié de https://github.com/ymasory/programming-for-the -jvm/blob/master/examples/HelloWorld.j .

C'est le code source de la machine virtuelle Java.

.class public HelloWorld
.super Java/lang/Object

.method public static main([Ljava/lang/String;)V
.limit stack 2
.limit locals 1
  getstatic Java/lang/System/out Ljava/io/PrintStream;
  ldc "Hello, world"
  invokevirtual Java/io/PrintStream/println
    (Ljava/lang/String;)V
  return

.end method
.end class

En tant que "La machine virtuelle Java n'autorise pas l'accès à la mémoire au niveau octet", l'objet out de type LJava/io/PrintSteram; est stocké dans une pile avec la commande getstatic JVM. Ensuite, l’argument est placé sur la pile avant d’appeler une méthode println de la Java/io/PrintStream classe d'une instance nommée out. Le paramètre de la méthode est (LJava/lang/String;) et le type de sortie est vide (V).

0
prosseek
System.out.println

System est une classe dans le Java.lang paquet.

out est un membre de données static de la classe System et référence une variable de la classe PrintStream.

0
kuldeep rawat

System est la classe Java.

out est l'instance et le membre statique de PrintStream.

println est la méthode de PrintStream.

0
Ravi Rupapara

System - classe qui est final dans la nature. public final class System{}. Appartient au paquet Java.lang

out - static variable de référence de type PrintStream

println() - non static méthode dans PrintStream classe. PrintStream appartient au paquet Java.io.

Pour mieux comprendre, vous pouvez visiter: Comment System.out.println () fonctionne en Java

0
Mantu