Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

Of course they're completely separate. They're in different classes. QED

They also have different types.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top