第一題:
定義一名為 GeometricObject 之類別,其中包含
(a) 一名為 color 之 private string 成員
(b) ㄧ名為 filled 之 private boolean 成員
(c) 一建構子,無接受參數,負責將 color 指定為 “white”,將 filled 指定為 flase,並印出
“Constructor1”後換行
(d) 一建構子,接受一個 string color 參照及 bool filled 參數,負責將傳遞進來的參數 color
及 filled 分別指定給 color 及 filled 成員,並印出 “Constructor2”後換行
(e) 一傳回 string 之 public getColor 成員函數,無接受參數,傳回 color 成員之值
(f) 一無回傳值之 public setColor 成員函數,接受一個名為 color 的 string 參數,負責將傳遞進來的參數 color 指定給 color 成員
(g) 一傳回 boolean 之 public isFilled 成員函數,無接受參數,傳回 filled 成員之值
(h) 一無回傳值之 public setFilled 成員函數,接受一個名為 filled 的 boolean 參數,負責將傳遞進來的參數 filled 指定給filled 成員
(i) 一傳回 string 之 public toString 成員函數,無接受參數,傳回如下格式之 string Color: color 成員值 Filled: filled 成員值
其中 color 成員值為 color 成員字串值(“white”, “red”, ….), filled 成員值為 filled 成員值(True or False)
亦即印出之格式為 “Color:XXX□Filled:XXXXX
XXX 為 white、red、…
XXXXX 為 True 或 False
以上所有成員函數均為 public
另外包含一名為 Circle 且 public 繼承 GeometricObject 之類別,其中包含
(a) 一名為 radius 之 private double 成員
(b) 一建構子,無接受參數,將 radius 成員之值設定為 1,並印出“CConstructor1”後換行
(c) 一建構子,接受接受一個名為 radius 的 double 參數,負責將傳遞進來的參數 radius 指定給 radius 成員,並印出“CConstructor2”後換行,若傳遞進來之 radius 值小於 0,則印出
“Wrong”後換行,同時將 radius 成員設成 0。
(d) 一建構子,接受接受一個名為 radius 的 double 參數、一個名為 color 的 string 參照、一個名為 filled 的 bool 參數,負責將傳遞進來的參數 radius 指定給 radius 成員、將傳遞進來的參數 color 及 filled 分別指定給 color 及filled 成員,並印出“CConstructor3”後換行, 若傳遞進來之 radius 值小於 0,則印出“Wrong”後換行,同時將 radius 成員設成 0。
(e) 一傳回 double 之 public getRadius 成員函數,無接受參數,傳回 radius 成員之值
(f) 一無回傳值之 public setRadius 成員函數,接受參數一個名為 radius 的 double 參數, 負責將傳遞進來的參數 radius 指定給 radius 成員,若傳遞進來之 radius 值小於 0,則印出“Wrong”後換行,同時將 radius 成員設成 0。
(g) 一傳回 double 之 public getArea 成員函數,無接受參數,傳回圓面積
(radius*radius*3.14159)
(h) 一傳回 double 之 public getDiameter 成員函數,無接受參數,傳回圓直徑(2*radius)
(i) 一傳回 double 之 public getPerimeter 成員函數,無接受參數,傳回圓周長
(2*radius*3.14159)
(j) 一無回傳值之 public toString 成員函數,無接受參數,傳回如下格式之 string CColor: color 成員值 Radius: radius 成員值
其中 color 成員值為 color 成員字串值(“white”, “red”, ….), radius 成員值為radius 成員值
亦即印出之格式為 “CColor:XXX□Radius:XXXXX
XXX 為 white 、 red 、 … XXXXX 為 radius 成員值(小數點後印出六位)
以上所有成員函數均為 public
另外包含一名為 Rectangle 且 public 繼承 GeometricObject 之類別,其中包含
(a) 一名為 width 之 private double 成員
(b) 一名為 height 之 private double 成員
(c) 一建構子,無接受參數,將 width 成員值設為 1 、height 成員值設為 1,並印出
“RConstructor2”後換行,
(d) 一建構子,接受名為 width 及 height 的 double 參數,負責將傳遞進來的參數 width 指定給 width 成員,及傳遞進來的參數 height 指定給 height 成員。並印出“RConstructor2”後換行,若傳遞進來之 width 或 height 之值小於 0,則印出“Wrong”後換行,並將傳遞進來之值為 0 者相對應之 width 或 height 成員設成 0。
(e) 一建構子,接受接受名為 width 及 height 的 double 參數、一個名為 color 的 string 參照、一個名為 filled 的 bool 參數,負責將傳遞進來的參數 width 指定給 width 成員、傳遞進來的參數 height 指定給 height 成員、傳遞進來的參數 color 及 filled 分別指定給 color 及
filled 成員。並印出“RConstructor3”後換行,若傳遞進來之 width 或 height 之值小於 0, 則印出“Wrong”後換行,並將傳遞進來之值為 0 者相對應之 width 或 height 成員設成 0。
(f) 一傳回 double 之 public getWidth 成員函數,無接受參數,傳回 width 成員之值
(g) 一傳回 double 之 public getHeight 成員函數,無接受參數,傳回 height 成員之值
(h) 一無回傳值之 public setWidth 成員函數,接受參數一個名為 width 的 double 參數, 負責將傳遞進來的參數 width 指定給