Professional Documents
Culture Documents
學號 : 姓名 : 分數 :
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%)
}
請在右格中填入程式碼,可以計算陣列 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%)
2
金門技術學院 資管 系 日四技一年級 程式設計 93 下學期 期中考 出題者 : 陳鍾誠
學號 : 姓名 : 分數 :
5. 書籍類別 Book (20%)