Form1 = Me 'This call is required by the Win Form Designer. InitializeComponent() 'TODO: Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Public Overrides Sub Dispose() MyBase.Dispose() components.Dispose() End Sub #Region " Windows Form Designer generated code " ...... #End Region Protected Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim ord As New Order("Order777") Dim pline As OrderLine pline = New OrderLine("Pencil", 88.25) ord.AddLine(pline)
pline = New OrderLine("Ballpen", 110.5) ord.AddLine(pline) Messagebox.Show(ord.getOrderID + "'s amount = " + str(ord.Amount())) End Sub End Class
此程序输出: Order777's cost = 198.75
在Order 类别中定义了lines变量﹐其型态ArrayList﹐表示lines将可代表1 个ArrayList之对象﹐其本质上就是lines变量,内含一个参考值﹐参考到ArrayList之对象。在Order类别的建构程序 ---- New()里,诞生了ArrayList对象﹐并将参考值存入lines里。各程序之定义如下﹕ Order 类别的Amount()程序计算出该订单的总金额。AddLine() 则在订单上新增一个采购项目。在Form1_Click()中﹐ord 对象内含一个lines集合对象﹐它容纳2 个OrderLine对象。如此就表达了订单与采购项目之间的Whole-part关系了。 上述程序相当于 -----
'ex02.bas Imports System.ComponentModel Imports System.Drawing Imports System.WinForms Imports System.Collections '---------------------------------------------------- Class Order Class OrderLine Public pname As String Public amt As Double End Class
Private OrderID As String Private lines As ArrayList
Public Sub New(ByVal id As String) OrderID = id lines = New ArrayList() End Sub Public Sub AddLine(ByVal pna As String, ByVal am As Double) Dim ln As OrderLine ln = New OrderLine() ln.pname = pna ln.amt = am lines.Add(ln) End Sub Public Function Amount() As Double Dim total As Double = 0 Dim ln As OrderLine For Each ln In lines total = total + ln.amt Next Amount = total End Function Public Function getOrderID() As String getOrderID = OrderID End Function End Class '----------------------------------------------------- Public Class Form1 Inherits System.WinForms.Form
Public Sub New() MyBase.New()
Form1 = Me 'This call is required by the Win Form Designer. InitializeComponent() 'TODO: Add any initialization after the InitializeComponent() call End Sub 'Form overrides dispose to clean up the component list. Public Overrides Sub Dispose() MyBase.Dispose() components.Dispose() End Sub #Region " Windows Form Designer generated code " ...... #End Region Protected Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim ord As New Order("Order777") ord.AddLine("Pencil", 88.25) ord.AddLine("Ballpen", 110.5) Messagebox.Show(ord.getOrderID + "'s amount = " + str(ord.Amount())) End Sub End Class
(编辑:aniston)
|