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

第 一 題

📖 題組:
三、Java 是常用的物件導向程式語言。
📝 此題為申論題,共 2 小題

小題 (一)

請寫出以下三個 Java 程式的執行結果。(15 分)
(1)
class square {
int edge;
square(int e){ edge = e; }
}
public class app {
public static void main(String args[]) {
square s1 = new square(10);
square s2 = new square(10);
if(s1 == s2)
System.out.print("Equal square");
else
System.out.print("Not equal square");
}
}
(2)
public class app {
public static void main(String args[]) {
int a[] = {1,2,3,4,5};
show(a);
}
public static void show(int i){
System.out.println(i);
}
public static void show(int b[]){
for(int i = 0; i < b.length; i++)
System.out.print(b[i] + " ");
}
}
(3)
class Circle {
protected double radius;
Circle(double r){ radius = r; }
void show(){ System.out.print(radius); }
}
class Coin extends Circle {
private int value;
Coin(double r, int v){
super(r);
value = v;
}
void show(){ System.out.print(radius+" "+value); }
}
public class app {
public static void main(String args[]){
Circle coin = new Coin(3.0, 10);
coin.show();
}
}

思路引導 VIP

此題包含三個獨立的 Java 小程式追蹤。 程式 (1) 考查「物件參考(Reference)比較」。使用 new 會在 Heap 區配置兩塊不同的記憶體,== 比較的是記憶體位址而非物件內容。

🤖
AI 詳解
AI 專屬家教

【考點分析】 本題測驗 Java 物件導向的三大核心基礎觀念:1. 物件參考比較;2. 方法多載(Overloading);3. 繼承、覆寫與多型(Polymorphism)動態綁定。 【分析與論述】

小題 (二)

下列 Java 程式之需求為:設定變數 color 的值並輸出。請指出其編譯錯誤原因,並針對該錯誤原因說明程式如何修正使之能正確執行。(10 分)
class Car {
private String color;
void showcolor() { System.out.println(color); }
}
public class app {
public static void main(String args[]) {
Car c1 = new Car();
c1.color = "blue";
c1.showcolor();
}
}

思路引導 VIP

這是一道物件導向「封裝(Encapsulation)」的觀念題。看到 private 存取修飾子,就要聯想到它只能在宣告它的類別內部被存取。在 app 類別中直接存取 c1.color 必定引發編譯錯誤。解決方法是遵循封裝原則,在 Car 類別中提供一個 public 的 Setter 方法,或者透過建構子來初始化屬性。

🤖
AI 詳解
AI 專屬家教

【考點分析】 本題考查物件導向的「封裝(Encapsulation)」特性,以及 Java 存取修飾子(Access Modifiers)的權限控制機制。 【理論/法規依據】

🏷️ 相關主題

物件導向程式設計概念與應用
查看更多「[資訊處理] 程式設計概要」的主題分類考古題