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

javaで質問があります。メソッドを呼び出すとき、
クラス.メソッド(引数)だと思いますが、
「.」が2つあるものがあります。
どういったものでしょうか?

あるプログラムに
Code.PerComFlag.ReCom.equals(atmlogDTO.getatmComFlg())
のがありました。
また、javaの本に
System.out.println(・・・)
という記述もあります。

よろしくお願いします。

A 回答 (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()メソッドがあるので、
それを呼ぶような記述をしているわけです。
    • good
    • 0

メソッドの戻り値がクラス(のインスタンス)なんです。



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 …
    • good
    • 0

いくつか考えられますが、


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

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