免費開始練習
普考申論題 111年 [資訊處理] 程式設計概要

第 一 題

📖 題組:
以下二小題是完整的物件導向程式碼,請回答以下各小題。(每小題 10 分,共 20 分)
📝 此題為申論題,共 2 小題

小題 (一)

以下為 Python 完整程式碼,請回答執行的結果為何? class Employee: all = [] def __init__(self, idno, first_name, last_name): self.id = idno self.first_name = first_name self.last_name = last_name Employee.all.append(self) def __repr__(self): return f"(ID={self.id}, Name={self.first_name} {self.last_name})" if __name__ == "__main__": e1 = Employee('001', 'Peter', 'Lee') e2 = Employee('002', 'Ann', 'Lo') print(Employee.all)

思路引導 VIP

這題考查 Python 的類別變數與物件表示法。關鍵點有二:1. all = [] 是類別變數,所有實例共享,且在建構式中被 append。2. __repr__ 方法定義了當物件被放入列表並列印時的顯示字串。考生需精確寫出字串格式,包括括號、空格與逗號。

🤖
AI 詳解
AI 專屬家教

【考點分析】 Python 類別屬性(Class Attribute)、建構子(__init__)、物件表示法(__repr__)。 【分析與論述】

小題 (二)

以下為 C#的類別程式碼,類別 Employee 內的欄位不可以由非繼承的類別讀取或寫入,請檢視此程式是否可以正確執行?若無法正確執行的話,請寫出正確的程式碼。 public abstract class Employee { private string id; private string name; private int age; public Employee() { } } public class Staff : Employee { public Staff(string _id, string _name, int _age) { this.id = _id; this.name = _name; this.age = _age; } }

思路引導 VIP

本題考查封裝與繼承的修飾詞(Access Modifiers)。關鍵爭點:private 成員能否被子類別直接存取?題目要求「不可以由非繼承的類別讀取」,隱含的意思是「可以由繼承的類別讀取」。目前的 private 限制太嚴,會導致子類別編譯失敗。應改用何種修飾詞?

🤖
AI 詳解
AI 專屬家教

【考點分析】 C# 存取修飾詞:private(僅限類別內部)vs. protected(僅限類別及其子類別)。 【理論/法規依據】

升級 VIP 解鎖