変数とデータ型比較問題

Javaにおける「ローカル変数」と「インスタンス変数(フィールド)」の違いとして正しいものはどれですか?

A.ローカル変数はメソッド内で宣言されクラス外からもアクセスでき、インスタンス変数はクラス内で宣言されメソッド内からしかアクセスできない
✗ ローカル変数はメソッド外からアクセスできません。スコープの説明が逆になっています。
B.ローカル変数はメソッド内で宣言され自動的に初期値が設定されるが、インスタンス変数は宣言時に必ず初期値を明示しなければならない
✗ ローカル変数は自動初期化されません。逆にインスタンス変数がデフォルト値で自動初期化されます。
C.ローカル変数はメソッド内で宣言されそのメソッド内でのみ有効であり、インスタンス変数はクラス内で宣言されオブジェクトが存在する間有効である← 正解
✓ 正解です。ローカル変数のスコープはメソッド内に限定され、インスタンス変数はオブジェクトのライフサイクルに依存します。
D.ローカル変数とインスタンス変数はスコープが異なるだけで、どちらも自動的にデフォルト値で初期化される
✗ ローカル変数は自動的にデフォルト値で初期化されません。使用前に明示的な初期化が必要です。

Oracle Certified Java Programmer, Bronze SE の問題一覧