2016-05-10 8 views
-2

ちょうどJavaを学び始めました。 "hello world"アプリを通じて、kはオブジェクトSystem.outについて学びました。オブジェクトは2つのクラスに属しますか?

Outはオブジェクトですが、それを使用するには、その前にシステムを記述する必要があります。それは明白で、私の本は、アウトはシステムクラスに属していると言っています。

しかし、この本の後半では、PrintStreamクラスにも属しています。 PrintStreamメソッドはPrintStreamクラスに属しているため、printlnメソッドを使用することができます。

どのクラスが属するのですか?混乱していますか?

また、Outのようなオブジェクトの場合は、使用するたびにそのクラスも書き込む必要があります。何かのために;

文字列挨拶= "こんにちは、世界!";私たちは、私は、文字列クラスに属していると思います.LENGTH()メソッドを使用したい場合は、私たちが書くいけない : int型のn = String.greeting.length()

は代わりに、それだけだ。 int型のn =挨拶。();

+0

javaと継承については、おそらく読んでください。http://beginnersbook.com/2013/03/inheritance-in-java/ –

+0

'String.greeting.length()'は意味がありません。なぜなら 'String '' greeting'フィールドはありません。クラス 'System'には' stdout'を保持する静的フィールドが含まれているので、 'out.println()'の前に 'System'を書きます。 – Natecat

+0

@RobertMoskal、私は継承について何も知らなかった。トピックは、私が行っているものの後の8章です。間にある物を読まずに読むのは嫌です。私の理解を妨げる重要なものが見当たらない場合に備えて。 – user11355

答えて

1

outは、クラスSystemの(静的)メンバ変数です。
これはクラスPrintStreamのインスタンスです。

class Foo { 
    String x; 
} 

xは文字列です。クラスFooのメンバです。同じ考え。

+0

静的ではないことがわかりますチャプターはまだ、まだいくつかの章です。 – user11355

+0

インスタンスとは何ですか? – user11355

+0

インスタンスは作成されたオブジェクトです。例えば ​​"hello"は 'String'オブジェクトの特定のインスタンスです – gadu

関連する問題