今天我們來練習犁田(誤)。
今天我們拿狐大的例子,來練習犁田(又誤,咳...),練習如何以物件導向的方式來分析與建構出犁田分析系統...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));
}
我們在 Class 騎士 中有一個 行駛()的 Method,裡面的動作如下:
function 路況[] 行駛(string from, string to){
馬路 o馬路;
o馬路 = new 馬路(from, to);
return o馬路.路況;
}
在取得的路況中,我們有 路況[0]->人孔蓋 及 路況[1]->坑洞,於是我們將路況交給 騎士 的犁田機率()去分析:
function float 犁田機率(路況){
// 先分析載具的犁田度
float 雷殘=載具.犁田度分析(路況);
// 再分析天候狀況
天候 o天候= new 天候();
if (o天候.天氣型態.equals("下雨天")) 雷殘+=0.5;
if (o天候.天氣型態.equals("晚上")) 雷殘+=0.2;
return 雷殘;
}
載具的犁田度分析(會依據載具的類型與路況,計算出犁田的機率)以及取得天候的程式,我們就不再一一說明了。
所以,我們透過犁田分析這個函式,我們在程式中這樣撰寫,
System.out(犁田分析("狐大","機車","樹林","新莊"));
就可以得到狐大的犁田機率了,這樣是不是比較有感覺了呢?
哇
從小教授之後
好久沒看到中文程式碼了
大推 bbb
Access 中可以使用中文的物件命名,不過寫起來真饒手...XD
讓 i 是 1 到 30
做 推 程式設計心法[i]文
迴圈
阿鬼, 你還是說英文好些...Orz