
開發階段,自然免不了對需求的分析 (analysis) ,然後設計 (design) 、建置 (implement) ,接著進行測試 (testing) ,其實這順序沒有絕對,「設計」與「建置」可能只是先做個簡單版本,「測試」與「使用」說到底都是實際執行後觀察結果,「修改」等於以之前的基礎再次「設計」與重新「建置」。
我們打算開發的 Encrypt 類別 (class) 的需求已經很清楚,也就是產生一個英文小寫字母對換的陣列 (array) ,我們用 cArray 屬性 (field) 當作對這個陣列的參考 (reference) ,然後以 setArray() 方法 (method) 建立這個陣列。
我們現在正式來寫 Encrypt ,利用 API 中 Math 類別 random() 方法可以得到小於 0 隨機浮點數,我們將其乘以 10 ,然後強制轉換型態為 int ,便可使 a 與 b 得到 0 到 9 的隨幾整數
public class Encrypt {
char[] cArray = new char[26];
// a 與 b 取得 0 到 9 的隨機整數值
int a = (int) (Math.random() * 10);
int b = (int) (Math.random() * 10);
int n = 26;
char c = 'a';
int diff = 97;
public void setArray() {
int i, y, x, m;
char r;
x = c;
for (i = 0; i < n; i++) {
y = x * a + b;
m = y % n;
r = (char) (m + diff);
cArray[i] = r;
x++;
}
}
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:Encrypt.java
功能:示範 Java 程式
作者:張凱慶
時間:西元 2011 年 4 月 */Math 中的 random() 也是 static 的,所以我們得由類別名稱 Math 來呼叫 (call) 。 Encrypt 中沒有寫 main() ,這是因為我們要把 main() 寫在另一個 EncryptDemo 類別中,由 EncryptDemo 來進行 Encrypt 的測試。那,總之 Encrypt 需要先編譯

命令列 (command line) 中打入編譯 (compile) 指令,無聲無息的出現下一個打指令的提示字元,這就表示我們編譯成功。那現在我們就來寫 EncryptDemo 囉
// 測試 Encrypt 的類別
public class EncryptDemo {
public static void main(String[] args) {
System.out.println();
Encrypt t = new Encrypt();
t.setArray();
System.out.println(t.cArray);
System.out.println();
}
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:EncryptDemo.java
功能:示範 Java 程式
作者:張凱慶
時間:西元 2011 年 4 月 */編譯後執行,如下

嗯,看起來還不錯。接下來,我們在 EncryptDemo 中加入迴圈 (loop) ,跑十六個表格出來看看,這樣的話, EncryptDemo 需要修改如下
// 測試 Encrypt 的類別
public class EncryptDemo {
public static void main(String[] args) {
System.out.println();
// 印 16 次表格
for (int i = 0; i < 16; i++) {
Encrypt t = new Encrypt();
t.setArray();
System.out.println(t.cArray);
}
System.out.println();
}
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:EncryptDemo.java
功能:示範 Java 程式
作者:張凱慶
時間:西元 2011 年 4 月 */記得, EncryptDemo 修改後需要重新編譯,而 Encrypt 目前沒問題,不用去動它

咦,居然有一行全部都是英文小寫字母 'e' ,有幾行的英文字母重複出現,這代表轉換公式有問題,我們接下來需要先修正數學公式。
| 中英文術語對照 | |
|---|---|
| 軟體生命週期 | sofeware life cycle |
| 開發 | development |
| 使用 | use |
| 修改 | modification |
| 分析 | analysis |
| 設計 | design |
| 建置 | implement |
| 測試 | testing |
| 類別 | class |
| 陣列 | array |
| 屬性 | field |
| 參考 | reference |
| 方法 | method |
| 呼叫 | call |
| 命令列 | command line |
| 編譯 | compile |
| 迴圈 | loop |
您可以繼續參考
軟體開發
相關目錄
回 Java 入門指南
回 Java 教材目錄
回首頁
參考資料
The JavaTM Tutorials: Getting Started
The JavaTM Tutorials: Learning the Java Language
The JavaTM Tutorials: Essential Classes
The Java Language Specification, Third Edition
本文於 2013 年 1 月訂正
沒有留言:
張貼留言