You are on page 1of 3

金門技術學院 資管系 日四技一年級 程式設計 93 下學期 期中考 出題者 : 陳鍾誠

學號 : 姓名 : 分數 :
1. 請解釋下列概念: (20%)
(1) 類別 (3) 繼承

(2) 物件 (4) 多型

2. 形狀類別
形狀類別與矩形類別定義如下: 請繼承 Shape 定義一個圓形類別 Circle,必需包含圓
class Shape { 心 x,y、半徑 r、建構函數 Circle(int px, int py, int pr) 與
double area() { return 0.0; } area() 函數。(15%)
}

class Rectangle extends Shape {


int x1,y1, x2, y2;
Rectangle(int pX1, int pY1, int pX2, int pY2) {
x1 = pX1; y1 = pY1;
x2 = pX2; y2 = pY2;
}
double area() {
return (x2-x1)*(y2-y1);
}
}

請在右格中填入程式碼,可以計算陣列 shapes 中所
有形狀的面積總和。(5%)

class Polymorphism1 {
public static void main(String args[]) {
Circle c = new Circle(1, 1, 1);
Rectangle r = new Rectangle(0, 0, 1, 1);
Shape[] shapes = { c, r};
// 請填入程式碼於右格中。

}
}

1
金門技術學院 資管 系 日四技一年級 程式設計 93 下學期 期中考 出題者 : 陳鍾誠
學號 : 姓名 : 分數 :
3. 矩形與視窗
請寫出下列程式的輸出 (10%) 以下程式定義一個 Window 類別繼承 Box 類別,並據有
public class Box { // 矩形類別 內框與外框,(外框就是其父類別的 Box , 內框名稱為
int x1, y1, x2, y2; // 左下角座標與右上角座標。 innerBox.) (10%)

public static void main(String args[]) { public class Window extends Box {
Box b = new Box(0, 0, 100, 100); // 一個視窗由兩個矩形構成,內部矩形與外部矩形。
System.out.println(b.inside(50, 50)); Box innerBox;
System.out.println(b.inside(300, 500)); public static void main(String args[]) {
System.out.println(b); Window w = new Window(0, 0, 100, 100);
} System.out.println(w.toString());
System.out.println("inner "+w.innerBox.toString());
Box(int pX1, int pY1, int pX2, int pY2) {
System.out.println(w.inside(3, 50));
x1 = pX1; y1 = pY1; x2 = pX2; y2 = pY2; System.out.println(w.innerBox.inside(3, 50));
} }
boolean inside(int x, int y) { // 是否在矩形內
Window(int pX1, int pY1, int pX2, int pY2) {
if (x1 < x && x < x2 && y1 < y && y < y2) super(pX1, pY1, pX2, pY2);
return true; innerBox = new Box(pX1+5, pY1+20, pX2-5, pY2-5);
else }
}
return false;
}
public String toString() {
return "box:("+x1+","+y1+")-("+x2+","+y2+")";
}
}
(3%) box:( , )-( , ) (3%)
(3%) inner box:( , )-( , ) (3%)
box:( , )-( , ) (4%) (2%)
(2%)

4. 日期類別 (20%)

請定義一個日期的類別 Date ,其特性如下:

(1) 包含年(Year)、月(month)、日(day) 等三個欄位


,該表示法用西元的方式記錄之。

(2) 定義一建構函數 Date(int y, int m, int d) 可設定初


值。

(3) 定義一函數 String toString() 可將該表式法轉為字


串傳回。

(4) 定義一函數 toROC() 將該年月日轉成民國的記年


方式 (將西元年減掉 1911 即為民國年)。

(5) 請寫出其主程式 main 可設定一 Date 物件為


2005/4/19 日,並印出其民國記年方法。

2
金門技術學院 資管 系 日四技一年級 程式設計 93 下學期 期中考 出題者 : 陳鍾誠
學號 : 姓名 : 分數 :
5. 書籍類別 Book (20%)

請定義一個書籍的類別 Book ,其特性如下:

(1) 包含 書名 (title), 作者 (author), 出版日 (date), 出


版社 (publisher), 價錢 (price)。

(2) 包含一建構函數 Book(String t, String a, Date d,


String pu, int pr) 可以設定其初值。

(3) 包含一函數 print() 可將所有欄位名稱與內容印


出於銀幕,格式如下:(書名:XXX 作者 XXX 出版日
XXX 出版社 XXX 價錢 XXX)

(4) 包含一主程式 可建立一本書並列印出來,該書


基本資料如下: (書名:臘筆小新第 98 集 作者 新之
助 出版日 2004/3/2 出版社 東立漫畫 價錢 50 元)

(其中的 date 請直接宣告為第 4 題的 Date 型態)

You might also like