dポイントプレゼントキャンペーン実施中!

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

A 回答 (12件中11~12件)

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){
  ;
 }
}
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/03/24 06:48

Javaでは、フィールドにオブジェクトを持つことが出来ます。



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

Systemのフィールド変数inも同様に、PrintStreamクラスのインスタンスを参照しています。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/03/24 06:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!