免費開始練習
moea_joint_essay 109年 [資訊] 資訊管理、程式設計

第 一 題

📖 題組:
給定物件導向程式碼如下:(共 2 題,共 10 分) ```java class A { public int a0; private int a1; public void m1( ) {a1 = 1;} public void m1(int x) {a1 = x;} public void m2( ) {a1 = 3;} } class B extends A { private int b1; private int b2; public void m2( ) {b1 = 5; b2 = 2;} public void m3( ) {a0=m1(b1);} } ```
📝 此題為申論題,共 2 小題

小題 (一)

請以 class A 說明以下概念:(6 分)
(1)封裝(encapsulation)(3 分)
(2)繼承(inheritance)(3 分)

思路引導 VIP

指出程式碼中代表封裝(private變數與public方法)與代表繼承(extends)的部分並解釋。

🤖
AI 詳解
AI 專屬家教

(1) 封裝 (Encapsulation): 封裝是將資料與操作資料的方法綁定在一起,並對外部隱藏物件的內部實作細節。在 class A 中,屬性 a1 被宣告為 private(私有),意味著它無法被類別外部直接存取或修改;外部程式只能透過類別所提供的 public(公開)方法 m1()m2() 來安全地改變 a1 的狀態,這確保了資料的完整性與安全性。 (2) 繼承 (Inheritance)

小題 (二)

請以 class A、class B 說明以下概念:(4 分)
(1)覆寫(overriding)(2 分)
(2)超載(overloading)(2 分)

思路引導 VIP

解釋 Override (子類重新定義父類方法) 與 Overload (同類別中同名不同參數的方法),並對應程式碼舉例。

🤖
AI 詳解
AI 專屬家教

(1) 覆寫 (Overriding): 覆寫發生在具備繼承關係的子類別中,子類別重新定義父類別中「相同名稱且相同參數」的方法,以提供專屬的實作。在程式碼中,class A 定義了 public void m2(),而 class B 也宣告了完全相同的 public void m2()。當透過 B 的物件呼叫 m2() 時,會執行 class B 覆寫後的新邏輯(b1=5; b2=2;),取代原本 A 的行為。 (2) 超載 (Overloading)

🏷️ 相關主題

物件導向程式設計與系統分析核心概念
查看更多「[資訊] 資訊管理、程式設計」的主題分類考古題