回覆列表
  • 1 # 使用者6537493016028

    對於這個問題,我的回答是:窗體,模組和類模組之間沒有本質的,必然的聯絡。要有,也是按照程式設計的需要建立起來的一種對應關係。就一般意義而言,可以為一個窗體建立一個模組,來書寫數量較多的程式碼,實現一些功能。也可以幾個窗體共享一個模組。也就是說這種對應關係不是唯一的,要看具體需要。因為實際程式設計中,出於可讀性和安全性的考慮,窗體區域內的程式碼量一般不會太多,基本就是一些初始化的程式碼,所以就引入了通用模組,在模組中編寫功能程式碼。類模組也是模組,只不過是一種特殊的模組。類模組的程式碼具有比一般通用模組更強的針對性,它往往是為了表達類本身所具有的屬性和行為,而且這種表達是比較全面的。類模組和模組一起合作,如果用的好的話,可以條理清晰地解決實際中一些複雜的問題。

    模組即通用模組的引入是為了結構化程式設計的需要。在實際程式設計中,每一個模組中的程式碼常用來實現一個或一組類似的功能,模組中包括了要實現的功能的所有常量宣告,變數定義,函式宣告等等。模組透過宣告和編寫公共函式(Public Function或Function)與窗體或其他模組l連結,實現通訊。

    類模組,我的理解是VB為了能夠實現面向物件程式設計而引入的,雖然不是真正意義上的面向物件。在實際程式設計中,類模組可以定義私有變數(Private)或公有變數(Public),私有變數只能被本類模組中的函式和事件過程使用,而公有變數能夠被類在窗體或通用模組模組等非本類模組的位置例項化後訪問。與模組類似,類模組中也可以定義公有函式與外部進行通訊。類模組對於初學者理解起來可能有點難度,我在此就舉個例項簡單介紹一下如何建立和引用一個類模組:

    2. 在類中定義幾個變數,比如Private ID as long , Public stdName as string , Public Socre as Integer。在隨便寫幾個函式比如Function AddData() , Private Function DeleteData()。

    3. 雙擊擊Form1,在“通用”區域輸入Private Std as New Student(例項化類Student為Std)。在Form_Load事件中,輸入"Std.",注意此時會跳出提示,VB自動為你列出了Std的成員屬性stdName和Score以及事件AddData,你可能會奇怪為什麼沒有顯示自己定義的所有成員,原因就在第二步中定義的變數和事件的範圍不同,此時相信你應該明白當初定義Public和Private時兩者的區別了。你如果在程式中強行引用類模組的私有變數,比如n=Std.ID,那麼編譯器就會報錯“未找到方法或資料成員”。其實類模組可以跟VB中的控制元件聯絡起來。其實每一個控制元件相當於用類模組定義的類。比如TextBox是類的ID,Text1是TextBox的一個例項,Text1的Text,Visible等屬性對應著TextBox類模組中定義的許多Public變數。而Text1的Change,MouseMove等事件對應著類模組中定義的許多Public函式或過程。如果你理解了這一點,相信你對類模組已經有了一個較完整的認識。

    4. 還有一個最本質的問題,為什麼要引入類模組,或者說這有什麼好處呢?我的理解是:如果你要程式設計解決的問題很簡單,那麼類模組對你來說並無多大意義。但是如果你要程式設計處理一個複雜的問題,那麼類模組就大有所為了。類模組在實際應用中按照面向物件程式設計的思想,把一個實際問題的行為主體抽象成一個個類,每個類的描述性屬性構成類的成員變數,也稱屬性;類的成員的行為構成類的成員函式。(如編寫一個學生資訊管理系統時,可以抽象出使用者類,學生類等;使用者類有使用者名稱,密碼等屬性,有增刪改函式;學生類有學號,姓名等屬性,有錄入,刪改等函式。等等。)這樣做可以讓你的程式碼集中起來,便於程式碼的重用和維護,也增強了可讀性,提高了開發效率。

  • 中秋節和大豐收的關聯?
  • 調和油有可能摻入地溝油嗎?為什麼?