今天我們來練習犁田(誤)。
今天我們拿狐大的例子,來練習犁田(又誤,咳...),練習如何以物件導向的方式來分析與建構出犁田分析系統...XD
算是給接下的繼承實作,暖暖場。
OK,不囉嗦,就給他雷下去。
以狐大提供的幾個案例來說,有騎士、機車、路、人孔蓋、下雨天、夜晚,而犁田的狀況又分為摔倒()、被撞()...等等,很多的名詞與事件。
首先,我們先把問題的定義犁(誤)釐清楚。我們想分析,什麼情況底下,比較容易發生犁田事件。
我們先將得到的資訊分類一下,實體的東西有:騎士、機車(交通工具)、所走的路線,有的有人孔蓋,有的是坑坑洞洞,還有白天或夜晚或下雨等情況。
依據前一篇所提的步驟,先決定物件的實體。
我們 Define 如下:
當然上面所呈現的是物件分析的結果,過程中,物件是不斷的在思考中去調整與更改(屬性與方法)的。
所以有了這些物件,我們可以來開始建構我們的分析程式:
我們在 Class 騎士 中有一個 行駛()的 Method,裡面的動作如下:
在取得的路況中,我們有 路況[0]->人孔蓋 及 路況[1]->坑洞,於是我們將路況交給 騎士 的犁田機率()去分析:
今天我們拿狐大的例子,來練習犁田(又誤,咳...),練習如何以物件導向的方式來分析與建構出犁田分析系統...XD
算是給接下的繼承實作,暖暖場。
OK,不囉嗦,就給他雷下去。
以狐大提供的幾個案例來說,有騎士、機車、路、人孔蓋、下雨天、夜晚,而犁田的狀況又分為摔倒()、被撞()...等等,很多的名詞與事件。
首先,我們先把問題的定義犁(誤)釐清楚。我們想分析,什麼情況底下,比較容易發生犁田事件。
我們先將得到的資訊分類一下,實體的東西有:騎士、機車(交通工具)、所走的路線,有的有人孔蓋,有的是坑坑洞洞,還有白天或夜晚或下雨等情況。
依據前一篇所提的步驟,先決定物件的實體。
我們 Define 如下:
- Class 騎士
- public 名字
- public 載具
- public 行駛(起,迄)
- public 犁田機率(路況[])
- // Constructor
- new(){
- 載具= new 交通工具()
- }
- Class 交通工具
- public 類型
- public 犁田度分析(路況[])
- Class 馬路
- private 起
- private 迄
- public 路況[]
- private 取得路障資訊()
- new(string from, string to){
- 起=from;
- 迄=to;
- 取得路障資訊(); // 將路況回填到 路況[] 這個 public 屬性中
- }
- Class 人孔蓋
- public 狀態
- Class 坑洞
- public 深度
- Class 天候
- public 天氣型態
- public 天色
- private 取得天候()
- new(){
- 取得天候(); // 取得天氣型態與天色
- }
所以有了這些物件,我們可以來開始建構我們的分析程式:
- function float 犁田分析(string name, string motor, string from, string to) {
- 騎士 o騎士;
- o騎士 = new 騎士();
- o騎士.名字 = name;
- o騎士.載具.類型 = motor;
- return o騎士.犁田機率(o騎士.行駛(from,to));
- }
- function 路況[] 行駛(string from, string to){
- 馬路 o馬路;
- o馬路 = new 馬路(from, to);
- return o馬路.路況;
- }
- function float 犁田機率(路況){
- // 先分析載具的犁田度
- float 雷殘=載具.犁田度分析(路況);
- // 再分析天候狀況
- 天候 o天候= new 天候();
- if (o天候.天氣型態.equals("下雨天")) {雷殘+=0.5;}
如果你的網誌不支援引用網址自動搜尋功能,那麼你可以使用下列的直接引用網址來引用本文章:
http://blog.ithome.com.tw/trackback.php?id=51574
推文( 1 )

