Reputation: 1406
The Java documentation page for the System class says that one of its fields is called "out":
static PrintStream out
If I then look at the doc page for the PrintStream class, it says that one of its inherited fields is called "out". If I then click on this particular "out hyperlink" on that doc page, it provides a bit more detail:
protected OutputStream out
I'm confused about these two variables called "out". Are they two completely seperate variables?
Upvotes: 0
Views: 79
Reputation: 310884
Of course they're completely separate. They're in different classes. QED
They also have different types.
Upvotes: 0
Reputation: 279930
Are they two completely seperate variables?
Yes, they are. PrintStream
is a FilterOutputStream
. As such it wraps an OutputStream
object so that it can add behavior to it.
System.out
is referencing a PrintStream
object that is wrapping the OutputStream
(referenced by its own out
field) that represents the standard output.
Upvotes: 1