• ベストアンサー

javaのメソッド呼び出し

javaで質問があります。メソッドを呼び出すとき、 クラス.メソッド(引数)だと思いますが、 「.」が2つあるものがあります。 どういったものでしょうか? あるプログラムに Code.PerComFlag.ReCom.equals(atmlogDTO.getatmComFlg()) のがありました。 また、javaの本に System.out.println(・・・) という記述もあります。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • osumitan
  • ベストアンサー率33% (102/307)
回答No.3

べつに「クラス.メソッド(引数)」と決まっているわけではありません。 「.」も2つに限らず、3つ以上でもいくつでも重ねて指定できます。 たとえば「aaa.bbb(ccc);」という式があったとします。 このとき、dddにaaaを返す「getAaa()」というメソッドがあれば、 「ddd.getAaa().bbb(ccc);」と書けますし、 さらにeeeというクラスにpublicなdddというフィールドがあれば 「eee.ddd.getAaa().bbb(ccc);」と書けるわけです。 System.out.println(...)の場合は(APIドキュメントも参照してください)、 java.lang.Systemクラスにpublicなフィールドoutがあって、 outはjava.io.PrintStream型なので、publicなprintln()メソッドがあるので、 それを呼ぶような記述をしているわけです。

その他の回答 (2)

  • dekopa-
  • ベストアンサー率42% (161/378)
回答No.2

メソッドの戻り値がクラス(のインスタンス)なんです。 System.out.println()の場合、System.outはPrintStreamを返します。そのPrintStream.println()をまた呼んでいるのです。 これを分解すると、 PrintStream outStream = System.out; outStream.println(...); という2行分の処理、という意味になります。 メソッドを呼んで、その戻り値のメソッドをまた呼んで・・・というパターンは良くあるパターンで、3つ以上つなぐこともざらです。

参考URL:
http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/lang/System.html#out
  • MrBan
  • ベストアンサー率53% (331/615)
回答No.1

いくつか考えられますが、 packegeの名前を明示してクラスのメンバを指定する場合や、 クラスのメンバであるクラスのメンバを参照する場合などは'.'が続きます。 提示の例だと後者ですね。 Systemのメンバにoutがあり、outのメソッドにprintlnがあり…。