Javaの基本比較問題
Javaにおける「インスタンス変数」と「クラス変数(static変数)」の違いとして正しいものはどれですか?
A.インスタンス変数はstaticキーワードで宣言され、クラス変数はstaticなしで宣言される
✗ 説明が逆です。staticキーワードで宣言されるのはクラス変数であり、インスタンス変数にはstaticは付きません。
B.インスタンス変数はオブジェクトごとに独立した値を持ち、クラス変数はすべてのオブジェクトで共有される← 正解
✓ 正解です。インスタンス変数は各オブジェクトが独自の値を持ち、クラス変数はすべてのインスタンスで共有されます。
C.インスタンス変数はクラス名でアクセスでき、クラス変数はオブジェクト名でしかアクセスできない
✗ 逆の説明です。クラス名でアクセスできるのはクラス変数(static変数)です。インスタンス変数はオブジェクト経由でアクセスします。
D.インスタンス変数とクラス変数はどちらもクラス全体で1つの値しか持てない
✗ 誤りです。クラス変数は1つの値を共有しますが、インスタンス変数はオブジェクトごとに異なる値を持てます。