質問

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?

役に立ちましたか?

解決

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.

他のヒント

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

They also have different types.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top