物件導向的最大利益在於軟體寫好了以後, 可以一再地使用, 使得軟體開發成為零件組 合工業。 本文以一個簡單的月曆程式為例, 用 Java 電腦語言從非物件導向的方式, 一直改寫成為一個可以一再使用, 並能在全球資訊網上應用的視窗元件。Under Construction ...
本文全文見 HOPE NET 光碟月刊第 33 期,1997 年 二月號,及 第 34 期,1997 年 三月號。
import java.applet.*;
import java.awt.*;
import java.util.Date;
public class MonthCalApplet extends Applet {
private int iYear;
private int iMonth;
private MonthDate myMonth;
CalendarPanel monthPanel;
public void init() {
setLayout(new BorderLayout()); // 東南西北中的 Layout
myMonth = new MonthDate(); // 本月
iYear = myMonth.getYear();
iMonth = myMonth.getMonth()+1;
monthPanel = new CalendarPanel(myMonth); // 月曆元件
add("Center", monthPanel); // 加月曆元件
Panel pInput = new Panel(); // 新容器放 Input
pInput.add(new Button(" << ")); // 加入一個新按鍵
pInput.add(new Button(" < ")); // 加入一個新按鍵
pInput.add(new Button(" > ")); // 再加一個新按鍵
pInput.add(new Button(" >> ")); // 再加一個新按鍵
add("South", pInput); // 南面的
show(); // 秀出來
}
void setNewMonth() {
myMonth.setMonth(iMonth-1);
myMonth.setYear(iYear);
monthPanel.showMonth(); // 秀出來
}
public boolean action(Event evt,Object arg) { // 鍵被按了
if (evt.target instanceof Button) {
if (" < ".equals(arg)) {
if (--iMonth < 1) {
iYear--; iMonth = 12;
if (iYear < 70 ) iYear = 70;
}
} else if (" > ".equals(arg)) {
if (++iMonth > 12) {
iYear++; iMonth = 1;
if (iYear > 137 ) iYear = 137;
}
} else if (" << ".equals(arg)) {
if (--iYear < 70 ) iYear = 70;
} else if (" >> ".equals(arg)) {
if (++iYear > 137 ) iYear = 137;
}
setNewMonth();
}
return true;
}
}
歡迎對本站內容提出您的寶貴意見, E-mail: symonchang@earthlink.net