(
本記事の目次 )
模擬問題に挑戦!
では、今回解説したことの理解度を確認するため、3問の模擬問題に挑戦してみましょう。
問題1
以下のコードを、コンパイル、実行した場合、正しい解答はどれですか?
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Sample4 {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2015, 1, 30);
System.out.println(date.format(DateTimeFormatter.ISO_DATE));
}
}
- A. 「2015/01/30」が出力される
- B. 「2015/1/30」が出力される
- C. 「2015-01-30」が出力される
- D. 「2015-1-30」が出力される
- E. 実行時エラーとなる
of()メソッドに月、年、日をカンマ区切りで指定することで、LocalDateオブジェクトを取得できます。なお、月、日が1ケタの場合、0で埋めても埋めなくも問題ありません。6行目ではformat()メソッドの引数にDateTimeFormatterクラスのISO_DATE定数を指定しているため、出力結果は「2015-01-30」となります。
〔正解:C〕
問題2
以下のコードを、コンパイル、実行した場合、正しい解答はどれですか?
import java.time.LocalDateTime;
public class Sample5 {
public static void main(String[] args) {
LocalDateTime dateTime =
LocalDateTime.parse("2015-10-01T21:03:20");
dateTime.plusDays(3);
dateTime.minusDays(2);
System.out.println(dateTime);
}
}
- A. 「2015-10-01T21:03:20」が出力される
- B. 「2015-10-02T21:03:20」が出力される
- C. 「2015-10-02」が出力される
- D. 実行時エラーとなる
4、5行目は問題ありません。6行目で3日加算し、7行目で2日減算しています。しかし、dateTime変数に代入は行っていないため、8行目のdateTime変数は初期値である「2015-10-01T21:03:20」のままです。
〔正解:A〕
問題3
以下のコードを、コンパイル、実行した場合、正しい解答はどれですか?
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Sample6 {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2015, 4, 32);
date = date.minusDays(2);
System.out.println(date.format(DateTimeFormatter.ISO_DATE));
}
}
- A. 「2015-04-30」が出力される
- B. 「2015-4-30」が出力される
- C. コンパイルエラーとなる
- D. 実行時エラーとなる
5行目のof()メソッドの引数を見ると、日が「32」とあるため不適切です。コンパイルは成功しますが、実行時にDateTimeException例外が発生します。
〔正解:D〕
次回はラムダ式を解説
次回は「ラムダ式」を取り上げます。仕様範囲の広いラムダ式ですが、基本構文から解説します。なお、資格Zineでは、Silver SE 7/8認定資格の試験対策の連載も開始されています。ぜひ参考にしてください。

本記事の目次 )
