###質問の要点
こんばんは。質問させてください。
内容は
- printlnメソッドを使用します。
- その仮引数にjava.util.Dateクラスのインスタンスを渡します。
- 出力結果はその時の「年月日、曜日、時間」です。
- 通常のインスタンスを標準出力に出力した場合と結果が異なるので、その理由が知りたいです。
###テストコード
Java
1import java.util.Date; 2 3public class DateTest{ 4 5 public static void main(String[] args){ 6 7 System.out.println(new Date()); 8 System.out.println(new DateTest()); 9 } 10}
実行結果は
Mon Jul 17 11:39:40 GMT 2017 DateTest@20c1bcc8
でした。
APIリファレンスでprintlnメソッドの詳細を確認します。
public void println(Object x)
Objectを出力して、行を終了します。このメソッドは最初にString.valueOf(x)を呼び出して出力されるオブジェクトの文字列値を取得してから、print(String)、そしてprintln()を呼び出すのと同じように動作します。
String.valueOfメソッドを確認します。
public static String valueOf(Object obj)
Object引数の文字列表現を返します。
パラメータ:
obj - Object。
戻り値:
引数がnullの場合は"null"に等しい文字列。それ以外の場合はobj.toString()の値が返される。
obj.toStringメソッドを確認します。
public String toString()
クラスObjectのtoStringメソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字「@」、およびオブジェクトのハッシュ・コードの符号なし16進数表現から構成される文字列を返します。
要するにオブジェクトをprintlnメソッドに渡した場合、
「クラス名@ハッシュコード」の内容で出力されるという意味だと思います。
そこでテストコードの実行結果を見ると、DateTestの方はその形を成しています。
しかしDateの方は「年月日、曜日、時間」が出力されています。
printlnメソッドはどの部分を区別して、結果を変化させてるんでしょうか?
あるいはAPIリファレンスで僕が見ている箇所が間違っているのでしょうか?
どうかご説明願います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/18 03:44