オブジェクト指向の基礎応用問題
次のコードをコンパイル・実行したとき、どうなりますか? class Shape { private int area = 100; int getArea() { return area; } } public class Main { public static void main(String[] args) { Shape s = new Shape(); s.area = 200; System.out.println(s.getArea()); } }
A.100 が出力される
✗ s.area = 200はprivateフィールドへの直接アクセスであり、コンパイルエラーとなるため実行されません。
B.200 が出力される
✗ privateフィールドはクラス外から直接アクセスできないため、200が出力されることはありません。
C.コンパイルエラーが発生する← 正解
✓ 正解です。privateフィールドareaにクラス外から直接アクセスしているため、コンパイルエラーが発生します。
D.実行時エラーが発生する
✗ このケースではコンパイル時にエラーが検出されるため、実行時エラーにはなりません。