Java 11 練習問題 ~ローカル変数型推論編~ その3


java 11 練習問題 ~ローカル変数型推論編~

java 11 練習問題 ~ローカル変数型推論編~

動作環境と問題内容について

javaの練習問題です。 出題範囲はjava 9 以降に追加された範囲を中心とします。このシリーズでは、ローカル変数型推論に関する問題を出題します。

難易度は Java SE 11 Programmer I の試験と同程度※を想定しています。

※ただし、場合によっては同試験には出題されない内容や形式が含まれることもあります。あくまでも難易度の目安として解答してください。

実行環境は以下の通りです。

javaのバージョン
 javac 11.0.2
 openjdk version “11.0.2” 2019-01-15
 OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
 OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

 

※問題文に書いてあるプログラムを実行する際は自己責任で実行してください。

問題

次のプログラムを作成した。コンパイル、実行に関して以下の問いに答えなさい。

 

プログラム(Sample.java)

public class Sample{
    public static void main(String[] args){
        /* A */
    }
}

 

問.以下の a ~ d のコードのうち、Aの部分に入れた場合にコンパイルエラーになるコードはどれか。すべて選べ。いずれもコンパイルエラーにならない場合は e を選択せよ。

選択肢

a. int var = 1;

b. var var = 1;

c. var v = 1; v = 2;

d. var v = 1; v = “Hello”;

e. a ~ d のいずれもコンパイル可能

 

解答はこちら

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

解答

 

d. var v = 1; v = “Hello”;

 


解説

java でローカル変数型推論を利用する場合、変数宣言時に代入された値からデータ型が推測される。

 varという変数名の変数は(問題作成時点では)宣言可能 (したがって、a と b はコンパイル可能)。

 


d. var v = 1; v = “Hello”;

java でローカル変数型推論を利用する場合、 データ型は代入時に確定される 

変数 v のデータ型は、int型となるが、再代入で int型と異なるデータ型を代入しようとしている 

よってコンパイルエラー。

詳しくはこちらの記事を参照

 


まとめ

java 10 からは、ローカル変数型推論を用いた変数宣言ができるようになった。

正確に理解した上で、設計や実装時にはソースコードの保守性が下がらないように注意して利用する必要がある。

 


 <<前回の問題はこちら  |  第1問はこちら  |  次の問題はこちら>>> 


 オススメ!!→ java 11 の問題はこちら

 オススメ!!→ java 8 の問題はこちら

 オススメ!!→ javaのプログラム作成練習問題はこちら

 オススメ!!→ ローカル変数型推論の使い方注意点

  • このエントリーをはてなブックマークに追加

PAGE TOP