• 締切済み

System.out.print

System.out.print()の outは Systemクラスのoutフィールドだそうです。 しかし、out.print(~)の形は意味がわかりません。 つまり、「フィールド.メソッド()」の意味がわからないのです。 普通は A a = new A(); とやって 「a.メソッド」つまり 「参照型変数.メソッド()」とやるはずです。 「フィールド.メソッド」の意味がよくわかりません。 よろしくお願いいたします。

みんなの回答

  • luckymako
  • ベストアンサー率55% (29/52)
回答No.2

System の フィールドを static としてやれば System を new しなくても使えます。 public にしてやればどこからでも使うことが出来ます。 以下のようにすれば本物の System.out.print と同じ使い方が出来ますよ。 public class M {  public static void main(String[] args) {   System.out.print(0);  } } public class System {  public static Out out = new Out(); } public class Out {  public void print(int arg){   ;  } }

ppp1984
質問者

お礼

ありがとうございます。下から3行目の;はどういう意味なのでしょうか? また上から3行目のprint(0)の0というのはどういう意味なのでしょうか?

すると、全ての回答が全文表示されます。
  • auty
  • ベストアンサー率58% (284/486)
回答No.1

Javaでは、フィールドにオブジェクトを持つことが出来ます。 Systemのフィールド変数outは、PrintStreamクラスのインスタンスを参照しており、 このストリームは最初から使えるようになっています。 つまり、System.outはオブジェクトと考えてよく、print(...)はそのメソッドです。 Systemのフィールド変数inも同様に、PrintStreamクラスのインスタンスを参照しています。

ppp1984
質問者

お礼

ありがとうございます。 そうしますと、たとえば System a = new System(); a.println(~~); とやることも可能なのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A