user2911290
user2911290

Reputation: 1406

Confused about the PrintStream out variable

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

Answers (2)

user207421
user207421

Reputation: 310884

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

They also have different types.

Upvotes: 0

Sotirios Delimanolis
Sotirios Delimanolis

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

Related Questions