Curl/示例 4
外觀
< Curl
{curl 5.0, 6.0 applet}
|| Simple OO example - I know simple OO is never sufficient
|| Lets sub-class an ellipse and define a Circle class (width=height=diameter)
{define-class CircleGraphic {inherits EllipseGraphic}
field diameter:Distance
{constructor {default diameter:Distance = 1cm, ...}
set self.diameter = diameter
{construct-super ..., width=diameter, height=diameter}
}
}
|| Declarative is sooo easy to display stuff lets combine them here
{HBox
{CircleGraphic diameter=2cm},
{CircleGraphic diameter=3cm, fill-color="red"},
{CircleGraphic diameter=5cm}
}
此示例展示了一些面向物件的功能以及宣告式佈局。
第 1-3 行如上所述。
第 4 行開始定義一個名為 Circle 的新面向物件類,該類繼承自 Ellipse(isa 關係)。
第 5 行定義了一個用於圓形的欄位,用於儲存直徑的值。實際上並不需要它,可以直接引用已經儲存在橢圓形中的寬度和高度。同樣,我們應該阻止其他程式設計師獨立於直徑更改寬度和高度的值。這就是我所說的簡單的面向物件示例永遠不夠的原因。
第 6 行宣告新類的建構函式。關於引數的一點說明。Circle 的第一個引數是一個關鍵字引數,它具有預設值。Curl 支援位置引數和關鍵字引數。第二個引數是省略號“...”(也稱為“其餘引數”)。這是一個用於傳入任意數量的引數的結構,您可以解析它們。它非常有用,通常不需要太多工作。
第 7 行將直徑值儲存在名為 diameter 的物件欄位中。
第 8 行呼叫 Ellipse 的建構函式,但使用給定的直徑覆蓋寬度和高度的任何提及。
程式的其餘部分關閉建構函式和類定義,然後建立一個簡單的顯示來儲存三個圓。請注意,其他資訊(填充顏色)透過剩餘引數傳遞給橢圓形。這是一個輸出的螢幕截圖。
Curl 的動態特性可以用於建立複合應用程式。接下來是一個包含聊天功能和 Web 瀏覽器的簡單複合程式。將下面的指令碼另存為檔案。
輸入“c:\webbrowser.curl”,然後在“執行...”欄位中輸入以下行。
"c:\Program Files\Curl Corporation\Surge\4\bin\curl.exe" c:\webbrowser.curl
要求您已安裝 Internet Explorer 和 Curl 3。
您還可以顯示位址列,自動填充表單等。