在
visual
basic 6.0類的技術與應用(上)(以下簡稱上文)中,我們討論了類的理論、類的建立和類的方法的程式設計實踐,實際上,類之所以能夠在軟體工程中廣泛應用,最主要的一點是它可以非常方便的封裝許多程式設計需要的屬性,這不僅使程式設計師在一定程度上克服控制項(ocx)和鏈結庫(dll)設計和除錯中的複雜性,而且能夠提高程式**的簡潔和高效性——本文將討論完整的類的程式設計,包括方法、屬性和基本事件。
(一)類的屬性的特徵和定義;
類似於標準控制項的屬性,類的屬性允許使用者在指定的資料範圍內進行賦值,這些值被類內的各個**部分所共享。屬性的獲得和傳遞需要經過 property let和property get語句進行程式設計,當然,我們首先需要在類中進行全域性或者模組級的相應變數定義。
(二)事件的屬性和基本定義;
和窗體的事件類似,類也有兩個基本的事件,class_initialize(類載入時觸發)和class_terminate(類解除安裝時觸發),這兩個事件都是private的。實際上,我們完全可以忽略這兩個事件——只要你記得完善類的方法和屬性。
類同樣可以定義自己的事件,它和方法的程式編寫格式類似,只不過需要withevents關鍵字進行引數宣告,而且事件不能有任何命名引數或者可選引數,它也沒有返回值。
實際上,結構良好的方法和屬性完全可以替代結構複雜的類的事件。
(三)類的方法、事件和屬性的程式設計例項;
本程式的設計目的是,通過類控制窗體中文字框的內容的全部大寫、小寫和逆向排序轉化。
為了方便**的書寫和呼叫,我在類中引用了列舉的程式設計方法。
以下**在類class1:
option explicit
private withevents mytxt as textbox
'方法的引數介面
public enum style
lcaseit'小寫屬性
lbigit'大寫屬性
nlogoit'逆向排序屬性
end enum
'自定義列舉,用來實現屬性的自動賦值
private mvarbiaozhi as style
'實現列舉常量的連線
public function done() as string'
'done方法用來根據指定的列舉屬性,對
'窗體文字框進行相應的字元轉化操作
'並且返回轉化後的字串
if mvarbiaozhi = nlogoit then
done = strreverse(mytxt)
'逆向排序
elseif mvarbiaozhi = lcaseit then
done = lcase(mytxt)
'強制小寫轉化
else
done = ucase(mytxt)
'強制大寫轉化
end if
end function
'done方法結束
public property let biaozhi(byval vdata as style)
'獲得屬性的被賦的值
mvarbiaozhi = vdata
end property
public property get biaozhi() as style
'傳遞屬性值到類中
set biaozhi = mvarbiaozhi
end property
public sub attach(ittext as textbox)
'連線類的方法
set mytxt = ittext
end sub
private sub class_initialize()
'本事件在類倍載入時啟用
msgbox "你好!本程式向您展示使用類的方法、屬性、事件進行程式設計的技術!"
end sub
private sub class_terminate()
'本事件在類被解除安裝時啟用
msgbox "你好!記得在class_terminate中填寫物件撤銷後的**!"
end sub
'類的**全部結束
(四)窗體**的引用程式設計;
在窗體form1中新增文字控制項text1、下拉列表控制項combo1、命令按鈕command1(caption="開始轉化"),調整三個控制項到適當位置。
dim myt as new class1
'類的引用
private sub form_load()
combo1.clear
combo1.additem "字串大寫轉化"
combo1.additem "字串小寫轉化"
combo1.additem "字串逆向排序"
combo1.listindex = 0
'在列表框中新增屬性選項
end sub
private sub command1_click()
'當命令按鈕按下時啟用類
myt.attach text1
'方法引數聯接
select case combo1.listindex
case 0
myt.biaozhi = lbigit
case 1
myt.biaozhi = lcaseit
case 2
myt.biaozhi = nlogoit
end select
'根據列表框的選擇,給類的biaozhi屬性賦值
'注意,在程式設計環境中,上述屬性值自動新增
text1.text = myt.done
'返回排序結束後的字串
end sub
private sub form_unload(cancel as integer)
set myt = nothing
end'良好的程式設計習慣
end sub
怎麼樣,我們的**看起來如此的簡潔,這種感覺就象是在使用乙個控制項,不僅可以隨心所欲的呼叫,而且方便的使用了vb的自動提示功能。
(五)關於類的程式設計技術的總結;
嚴格的說,類是vb程式設計中的乙個相當有用的技術,同樣也是學習和掌握中的難點,類在大型軟體工程中應用是非常廣泛和卓有成效的,但是,在小型軟體開發中,為了提高軟體的效率和**的清晰度,應該避免使用較多的類模組,控制項和聯接庫,取代以標準模組。
本文所示例的**比較簡單,卻覆蓋了
關於模組程式設計技術的方方面面,希望初學者能夠有所借鑑,也希望程式設計師能夠共同**。我們應該相信,無論多麼複雜的高樓大廈都是由普普通通的方磚堆砌而成的,同樣,無論所麼複雜的軟體工程都是由基本的程式語句所構成的,程式設計愛好者、程式設計師和分析員的區別只是在於,用同樣的程式語句構建的程式的不同而已。
關於Visual Basic 6 0類開發 上
對程式設計師和程式設計愛好者來說,vb中類的技術是學習中的乙個難點,在大型軟體的開發過程中,模組 moudle 控制項 active ocx 鏈結庫 active dll 和類 class moudle 構成了系統化 高效化的軟體工程,而類的技術是控制項和鏈結庫技術的基礎,因此掌握類的理論和程式設計...
關於Visual Basic 6 0類開發 上
對程式設計師和程式設計愛好者來說,vb中類的技術是學習中的乙個難點,在大型軟體的開發過程中,模組 moudle 控制項 active ocx 鏈結庫 active dll 和類 class moudle 構成了系統化 高效化的軟體工程,而類的技術是控制項和鏈結庫技術的基礎,因此掌握類的理論和程式設計...
關於Visual Basic 6 0類開發(下)
在visual basic 6.0類的技術與應用 上 以下簡稱上文 中,我們討論了類的理論 類的建立和類的方法的程式設計實踐,實際上,類之所以能夠在軟體工程中廣泛應用,最主要的一點是它可以非常方便的封裝許多程式設計需要的屬性,這不僅使程式設計師在一定程度上克服控制項 ocx 和鏈結庫 dll 設計和...