MENU

【Java Silver】 ローカル変数型推論とインタフェースの適用

今日はJava Silver試験にもよく出題される、新しいJavaの機能であるローカル変数型推論とインタフェースの理解を深める問題です。

問題

以下のコードを実行した場合の出力を選んでください。

interface Operable {
                String operate();
            }

            class Machine implements Operable {
                public String operate() {
                    return "Machine Operating";
                }
            }

            public class Main {
                public static void main(String[] args) {
                    var myMachine = new Machine();
                    System.out.println(myMachine.operate());
                }
            }

選択肢

  • A. Machine Operating
  • B. コンパイルエラー
  • C. 実行時エラー
  • D. Interference Not Working

答えと解説

回答を見る

答え

A. Machine Operating

解説

解説のポイント:

  • ローカル変数型推論(var)の基本
  • インタフェースの実装と使用

Javaの新しい機能であるローカル変数型推論 (var)は、Java 10以降で利用可能になりました。varを使うことで、プログラマはローカル変数を定義する際の型宣言を簡略化することができます。

ここではvar myMachine = new Machine();として変数を宣言しています。この際、コンパイラは右辺のnew Machine()から自動的に変数の型をMachineと推論します。

インタフェースOperableMachineクラスが実装しています。Machineクラスのoperate()メソッドはOperableインタフェースのメソッドをオーバーライドしており、これによりMachine Operatingというメッセージを返します。

ローカル変数型推論は、特にコーディングを短く整然とするのに有効ですが、使いすぎるとコードの可読性に影響が出る可能性があります。

誤答理由とつまずきポイント: コードを見るとvarが使われているため、推論について理解がないとコンパイルエラーや実行時エラーを想像するかもしれませんが、この場合varは正しくMachine型を推論するため、コンパイルエラーなどにはなりません。

目次