Kodrill

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

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

次のコードを実行したときの出力を選んでください。

Main.java
public class Main {    private int x = 1;​    class Inner {        int x = 2;​        void show(int x) {            System.out.println(x + " " + this.x + " " + Main.this.x);        }    }​    public static void main(String[] args) {        Main.Inner in = new Main().new Inner();        in.show(3);    }}

選択肢

  • A.3 2 1正解
  • B.3 3 3
  • C.2 2 1
  • D.コンパイルエラーになる

解説

内部クラス (static でないネストしたクラス) のインスタンスは、外側のクラスのインスタンスに結びつけて 外側のインスタンス.new Inner() の形で作ります。名前が重なったときは、単に x と書くと最も内側のスコープ (引数) を、this.x は内部クラスのフィールドを、Main.this.x は外側のインスタンスのフィールドを指します。

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

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