國家安全情報人員考試五等考試-資訊組資料處理大意104 年第 8 題單選題
在 Java 語言中,當類別的成員變數宣告為下列何者時,只能讓該變數在同類別內直接存取?
APublic
BPrivate正確答案
CProtected
DPackage
B正確答案
private 修飾詞限制成員變數僅能在同類別內存取,封裝性最高。
為什麼答案是 B
private 是最嚴格的存取修飾詞,僅允許在宣告它的類別內部直接存取,外部類別(即使是子類別)皆無法直接使用,符合題意。
載入中…
完整詳解
Pro · 無限重點 private 修飾詞限制成員變數僅能在同類別內存取,封裝性最高。
看到「只能同類別」立刻選 private,這是物件導向封裝的基本題。
逐選項分析
A✕
public 為最開放等級,任何類別皆可存取,與題目「只能同類別內」完全相反。
B✓ 正確
private 是最嚴格的存取修飾詞,僅允許在宣告它的類別內部直接存取,外部類別(即使是子類別)皆無法直接使用,符合題意。
C✕ 陷阱
protected 允許同套件內類別與不同套件的子類別存取,範圍比 private 大,易混淆但非正解。
D✕
Java 中沒有 package 關鍵字作為存取修飾詞,預設(default/package-private)是不加任何修飾詞時的狀態,同套件皆可存取。
Java 四種存取修飾詞範圍
| 修飾詞 | 同類別 | 同套件 | 子類別 | 其他 |
|---|
| private | ✓ | ✗ | ✗ | ✗ |
| default | ✓ | ✓ | ✗ | ✗ |
| protected | ✓ | ✓ | ✓ | ✗ |
| public | ✓ | ✓ | ✓ | ✓ |
考生常把 protected 誤以為是「最保護」而選 C,但 Java 中 private 才是範圍最小、保護性最高者。另外 Java 並沒有叫 package 的修飾詞,預設不寫才是 package-private。