Java 17 Silver ・ 4. クラスの定義とインスタンスの使用
レコード・クラスの作成と使用 の練習問題と解説
Java 17 Silver ラボ の「4. クラスの定義とインスタンスの使用 › レコード・クラスの作成と使用」の問題 7 問を載せています。問題を開くと、正解と選択肢ごとの解説が読めます。
レコード・クラスの作成と使用 について
Java 16 で正式になった record は、値をまとめて持つクラスを短く書く仕組みです。自動で作られるメンバと、書けること・書けないことを扱います。
record Point(int x, int y) {} と書くと、private final のフィールド、全部の値を受け取るコンストラクタ、アクセサ、equals・hashCode・toString が作られます。アクセサの名前は getX() ではなく x() です。フィールドは final なので、値を書き換えるメソッドは書けません。
コンパクトコンストラクタ (Point { ... }) は引数の括弧を書かず、値の検査などを書くと、最後にフィールドへ自動で代入されます。中で this.x = ... と書くとコンパイルエラーです。インスタンス変数は追加できませんが、static 変数やメソッドは追加できます。record は暗黙に final で、他のクラスを継承できませんが、インタフェースは実装できます。
問題 (7 問)
- record の基本
- record のアクセサ名
- record のフィールドを書き換える
- コンパクトコンストラクタ
- record にインスタンス変数を追加
- record は継承できない
- record にメソッドを追加
広告