高考申論題
112年
[資訊處理] 程式設計
第 一 題
📖 題組:
三、關於以下Java程式: 01 import java.io.*; 02 import java.util.ArrayList; 03 abstract class Fruit { 04 public Fruit(int sweetness) {this.sweetness = sweetness; } 05 public abstract String eat(); 06 protected String taste() { 07 if (sweetness>0 && sweetness<5) return "no"; 08 else if (sweetness<=10) return "little"; 09 else if (sweetness<=15) return "some"; 10 else if (sweetness<=20) return "more"; 11 else return "super"; 12 } 13 private int sweetness; 14 } 15 class Apple extends Fruit { 16 public Apple(String c, int s) { super(s); this.color = c; } 17 public String eat() { return color +":"+taste()+" sweetness "; } 18 private String color; 19 } 20 class Watermelon extends Fruit { 21 public Watermelon(String v, int s) { super(s); this.volume = v; } 22 public String eat() { return volume +":"+taste()+" sweetness "; } 23 private String volume; 24 } 25 public class Test { 26 public static void test01() { 27 ArrayList fs = new ArrayList();
28 fs.add(new Apple("red", 18));
29 fs.add(new Watermelon("big", 20));
30 fs.add(new Apple("green", 10));
31 fs.forEach((n) -> System.out.println(n.eat()));
32 }
33 public static void main(String[] args) throws InterruptedException {
34 test01();
35 }
36 }
(一)請說明程式執行後其輸出與其運作程式碼行數順序。(12分)
(二)請依下面表格,說明Fruit的設計功用,包含Fruit類別類型與功用以及方法(method)。(13分)
| | Fruit類別類型與功用 | Fruit方法功用 | eat功用 | taste功用 |
|---|---|---|---|---|
| 說明 | | | | |
三、關於以下Java程式: 01 import java.io.*; 02 import java.util.ArrayList; 03 abstract class Fruit { 04 public Fruit(int sweetness) {this.sweetness = sweetness; } 05 public abstract String eat(); 06 protected String taste() { 07 if (sweetness>0 && sweetness<5) return "no"; 08 else if (sweetness<=10) return "little"; 09 else if (sweetness<=15) return "some"; 10 else if (sweetness<=20) return "more"; 11 else return "super"; 12 } 13 private int sweetness; 14 } 15 class Apple extends Fruit { 16 public Apple(String c, int s) { super(s); this.color = c; } 17 public String eat() { return color +":"+taste()+" sweetness "; } 18 private String color; 19 } 20 class Watermelon extends Fruit { 21 public Watermelon(String v, int s) { super(s); this.volume = v; } 22 public String eat() { return volume +":"+taste()+" sweetness "; } 23 private String volume; 24 } 25 public class Test { 26 public static void test01() { 27 ArrayList
📝 此題為申論題,共 2 小題
小題 (一)
請說明程式執行後其輸出與其運作程式碼行數順序。(12分)
思路引導 VIP
本題分為兩部分:一是求輸出結果,二是追蹤程式執行的「行數順序」。
- 輸出結果:
小題 (二)
請依下面表格,說明Fruit的設計功用,包含Fruit類別類型與功用以及方法(method)。(13分)
| | Fruit類別類型與功用 | Fruit方法功用 | eat功用 | taste功用 |
|---|---|---|---|---|
| 說明 | | | | |
| | Fruit類別類型與功用 | Fruit方法功用 | eat功用 | taste功用 |
|---|---|---|---|---|
| 說明 | | | | |
思路引導 VIP
本題要求分析 Fruit 類別在物件導向設計中的角色,並需對照表格項目作答。
- Fruit類別類型與功用:
abstract class(抽象類別)。功用是作為所有水果的「基礎樣板(Base Class)」,定義共有的屬性(甜度sweetness)並制定共通的行為介面,達到程式碼重用與多型設計的目的。