au PAY マーケット

Java (Bronze SE 7/8) 資格試験 Exercise8

Java (Bronze SE 7/8) 資格試験 Exercise8

練習問題1
1 class ConsTest {
2  public static void main(String args[ ]) {
3   final double P = 0;
4   String COMPANY_NAME = ” “;
5   P = 3.14;
6   COMPANY_NAME = “DEKIRUNEKO”;
7
8   System.out.println(P);
9   System.out.println(COMPANY_NAME);
10  }
11 }

01上記のコードを確認してください。
このコードをコンパイル、および実行すると、どのような結果になりますか。1つ選択してください。 A. 3.14
   DEKIRUNEKO

B. 3行目でコンパイルエラーが発生する
C. 4行目でコンパイルエラーが発生する
D. 5行目でコンパイルエラーが発生する
E. 6行目でコンパイルエラーが発生する

(答え):D

(解説):定数についての問題です。
 定数の初期化後に定数の値を変更しようとすると、コンパイルエラーが発生します。定数を宣言する場合には、宣言と同時に必要な値で初期化を行う必要があります。
●各選択肢の解説は、以下の通りです。

選択肢A:
 5行目でコンパイルエラーが発生するため実行できません。したがって、実行結果が出力されることはないため、不正解です。

選択肢B:
 3行目では、final修飾子を指定して定数Pを宣言しています。コンパイルエラーは発生しないため、不正解です。

選択肢C:
 4行目では、COMPANY_NAMEを宣言しています。定数名には慣習として大文字を使用しますが、final修飾子が指定されていないため定数ではなく変数の宣言となります。コンパイルエラーは発生しないため、不正解です。

選択肢D:
 5行目では、3行目で宣言した定数Pに3.14を代入していますが、定数に対して値の上書きを行うことはできないため、コンパイルエラーが発生します。したがって、正解です。

選択肢E:
 6行目では、4行目で宣言した変数COMPANY_NAMEに値を代入していますが、COMPANY_NAMEは定数ではないため代入は可能で、コンパイルエラーは発生しません。したがって、不正解です。


練習問題2
1 class VariableTest {
2  public static void main(String args[ ]) {
3   int x;
4   x = 1;
5   {
6    x = 2;
7    int y = 1;
8    y = 2;
9   }
10   x = 3;
11   y = 3;
12
13   System.out.println(x + y);
14  }
15 }

02上記のコードを確認してください。
このコードをコンパイル、および実行すると、どのような結果になりますか。1つ選択してください。 A. 6
B. 6行目でコンパイルエラーが発生する
C. 7行目でコンパイルエラーが発生する
D. 8行目でコンパイルエラーが発生する
E. 10行目でコンパイルエラーが発生する
F. 11行目でコンパイルエラーが発生する

(答え):F

(解説):変数の有効範囲についての問題です。
ソースコード内の{ }で囲まれた部分をブロックと呼びます。ブロック内で宣言した変数や、メソッドの引数で宣言した変数はローカル変数と呼ばれます。ローカル変数は宣言したブロック内のみで使用できます。
●各選択肢の解説は、以下の通りです。

3行目では、変数xを宣言しています。変数xはmain()メソッドのブロックに属すため、main()メソッドのブロック内である2~14行目で使用可能です。
7行目では、変数yを宣言しています。変数yは5~9行目のブロックに属すため、5~9行目のブロック内からのみ使用可能です。
10行目では、3行目で宣言した変数xに値を代入していますが、変数xは2~14行目のブロック内で有効なため、コンパイルエラーは発生しません。
11行目では、7行目で宣言した変数yに値を代入していますが、変数yは5~9行目のブロック内でのみ有効なため、コンパイルエラーが発生します。
したがって、選択肢Fが正解です。


練習問題3
1 class Test {
2  int num = 5;
3  public staic void main(String args[ ]) {
4   int num = 10;
5   calc(num, num);
6   System.out.println(num);
7  }
8
9  public static int calc(int num1, num2) {
10   int num = num1 + num2;
11   return num;
12  }
13 }

03上記のコードを確認してください。
このコードをコンパイル、および実行すると、どのような結果になりますか。1つ選択してください。 A. 5
B. 10
C. 15
D. 20
E. 4行目でコンパイルエラーが発生する
F. 10行目でコンパイルエラーが発生する

(答え):B

(解説):変数の有効範囲についての問題です。

配列とは、同じ型のデータを複数まとめて管理するデータ構造です。
●解説は以下の通りです。

  2行目、4行目、10行目で変数numを宣言しています。それぞれ異なるブロックでの変数宣言になるため、正常にコンパイルできます。同一ブロック内で同じ名前の変数を複数回宣言した場合は、コンパイルエラーが発生します。

6行目では変数numを出力していますが、6行目で使用している変数numは、4行目で宣言した変数numを指しています。5行目でcalc()メソッドを呼び出していますが、calc()メソッドから戻り値を受け取っていません。つまり、4行目で宣言した変数numは、宣言以降に値が更新されていないため、6行目では「10」が出力されます。

したがって、選択肢Bが正解です。



 

定数の初期化後に定数の値を変更しようとすると、コンパイルエラーが発生します。定数を宣言する場合には、宣言と同時に必要な値で初期化を行う必要があります。


 

ソースコード内の{ }で囲まれた部分をブロックと呼びます。ブロック内で宣言した変数や、メソッドの引数で宣言した変数はローカル変数と呼ばれます。ローカル変数は宣言したブロック内のみで使用できます。


 

配列とは、同じ型のデータを複数まとめて管理するデータ構造です。




恭喜你今天又向前迈进了一小步,明天继续加油哦!

如果你觉得这个网站对学习有帮助,希望你也能分享给身边的好友!

前の記事

我爱背单词#0001

次の記事

例文-Lesson48
ショップチャンネル