Kodrill

Java SE 17 Gold (1Z0-826-JPN) 試験 / 関数型インタフェースとラムダ式 ・ 無料問題 2/3

関数型インタフェースとラムダ式 問題2[内部クラス (内部クラス, static な内部クラス, 無名クラス) の使用]

次のコードをコンパイルした結果として正しいものを選んでください。

Main.java
public class Main {    private int count = 0;    private static int total = 0;​    static class Counter {        void inc() {            total++;            count++;        }    }​    public static void main(String[] args) {        new Counter().inc();        System.out.println(total);    }}

選択肢

  • A.コンパイルに成功し、1 と出力される
  • B.7行目でコンパイルエラーになる
  • C.8行目でコンパイルエラーになる正解
  • D.13行目でコンパイルエラーになる

解説

static なネストしたクラスは外側のクラスのインスタンスと結びついていないので、外側の static メンバー (total) には private でもアクセスできますが、インスタンスフィールド (count) には直接アクセスできません。そのため8行目がコンパイルエラーです。static なネストしたクラスは外側のインスタンスなしで new Counter() と生成できるので13行目は問題ありません。

「関数型インタフェースとラムダ式」の無料問題

ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。