VB.NET ,結(jié)構(gòu)體要寫在所有函數(shù)的外部
創(chuàng)新互聯(lián)公司是一家專業(yè)提供吉首企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、H5建站、小程序制作等業(yè)務(wù)。10年已為吉首眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
Public Class Form1
Structure Hate
Dim str As String
Dim i As Integer
End Structure
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim a As Hate
a.str = "string"
a.i = 1
MsgBox(a.str a.i)
End Sub
End Class
1. 什么是類和對象?
答:類包含某一類對象的數(shù)據(jù)和過程。對象是類的實例。
2. 為什么采用類和對象進行程序設(shè)計?
答:以便按照對象定義類,提高程序代碼的可重用性,避免重復勞動。
3. 在同一個類中,應(yīng)當包括哪些對象的屬性和方法?
答:同一類對象的數(shù)據(jù)和過程。
4. VB程序設(shè)計主要包括哪兩個方面的內(nèi)容?
答:Windows應(yīng)用程序界面和代碼。
5. 什么是事件驅(qū)動?
答:根據(jù)事件轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理過程。
1. 控件是窗體上的 對象 。
2. Visual Basic具有 BASIC程序語言簡單易學的 優(yōu)點,新增了 可視化和面向面向?qū)ο蟪绦蛟O(shè)計的 熱點,是 Windows編程人員廣泛使用的編程 工具。
3. 對象的 屬性 是在其類中定義的數(shù)據(jù)。
4. 對象的 方法 是在其類中定義的過程。
5. 對象本身的動作或功能稱為 方法 ,外界施加于某對象的動作或操作稱為 事件 。
1.面向過程
是指從功能的角度分析問題,將待解決的問題空間分解成若干個功能模塊,每個功能模塊描述一個操作的具體過程。
2.面向過程程序設(shè)計
主要是根據(jù)事務(wù)本身的邏輯過程進行編程的一種方法。
3.面向?qū)ο蟪绦蛟O(shè)計
是一種計算機編程架構(gòu),是由單個能夠起到子程序作用的單元或?qū)ο蠼M合而成。即按照對象編寫程序。
4.事件驅(qū)動程序設(shè)計
是一種電腦程式設(shè)計模型。這種模型的程式執(zhí)行流程是由使用者的動作或者是由其他程式的訊息來決定的。
5.函數(shù)
是一種特定的運算,在程序中使用一個函數(shù)時,只要給出函數(shù)名并給出一個或多個參數(shù),就能得到它的函數(shù)值
6.過程
是程序中可以執(zhí)行的一段代碼,過程包含在一個聲明語句和一個結(jié)束語句之間
7.類
是所有具有共同特征的事物的抽象,是一個抽象的概念(類是一組具有相同屬性特征的對象的抽象描述,是面向?qū)ο蟪绦蛟O(shè)計的又一個核心概念或者類是對一組對象共同具有的屬性和行為的抽象,具有封裝和隱藏性、還具有繼承性)。
8.對象
是一個屬性集合及其操作的封裝體(對象是用來描述現(xiàn)實世界中客體的部件,是面向?qū)ο筌浖到y(tǒng)在運行時刻的基本單位)。
類是對象的抽象,對象是類的實例。
9.事件
窗體或控件識別的動作
10.事件驅(qū)動
根據(jù)事件轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理過程。
11.屬性
是一個對象的特性,不同的對象有不同的屬性
12.算法
指解決某個問題的嚴格方法,描述有始有終的計算過程。
5.屬性窗口中屬性值被設(shè)置的方式有哪幾種?
6種:輸入 選取 瀏覽 賦值 默認 拖動
1.程序代碼是由一行一行的 語句 所組成。
3.在程序代碼中可將一個語句分成兩段的特殊符號為( _ )。
5.數(shù)值變量如果沒有設(shè)置初值,則內(nèi)定值為 0 。
7.如果有一個變量,可能會存放數(shù)值數(shù)據(jù)或字符串數(shù)據(jù),此時可以聲明該變量為 對象變量。
9. Integer數(shù)據(jù)類型占 4 bytes的內(nèi)存空間,可以表示的數(shù)值范圍為 -2,147,483,648~2,147,483,647 的整數(shù)
3.VB.NET程序語言數(shù)據(jù)類型的種類有哪些?
(1)數(shù)值型
①整形數(shù):短整形(Short)、整形(Integer)、長整型(Long)
②字節(jié)型(Byte)
③實型數(shù):單精度型(Single)、雙精度型(Double)
④貨幣型(Decimal)
(2)字符型(Char)和字符串型(String)
(3)邏輯型/布爾型(Boolean)
(4)日期型(Date)
(5)對象型(Object)[即可變型(Variant)]
1.局部變量、全局變量、跨模塊變量分別在何處聲明?其生存期分別是多少?
局部變量在程序內(nèi)聲明。生存期為從所在的程序運行開始到程序結(jié)束。
全局變量在窗體內(nèi)所有程序的外邊聲明。生存期為由該變量聲明開始,一直到程序退出運行為止。
跨模塊變量在一般模塊的聲明區(qū)用Public來聲明。生存期為從一個Windows應(yīng)用程序項目文件開始運行到結(jié)束。
3.什么是靜態(tài)變量?
靜態(tài)變量是在離開程序時能夠繼續(xù)保留目前的值,待下回進入該程序時能夠繼續(xù)保留的變量值的局部變量,用Static關(guān)鍵字聲明。
(一)問答題
1.請簡單說明在程序中使用程序的好處。
(1)程序可以重復使用,以方便維護與程序調(diào)試。
(2)程序可以讓其他工程或項目使用。
(3)程序的邏輯簡單、明確,可以讓程序變得簡單且可讀性高。
(4)程序具有模塊化的功能,因此可以將一個大的應(yīng)用程序分成數(shù)個小的且不同功能的程序,讓不同的程序設(shè)計師分別編寫?yīng)毩⒉煌δ艿某绦?,并以團隊開發(fā),加快應(yīng)用程序開發(fā)的時間。
3.試比較傳值調(diào)用與傳址調(diào)用的差異。
(1)聲明方式不同:
傳值——在程序中的虛自變量之前加上ByVal
傳址——在程序中的虛自變量之前加上ByRef
(2)占用內(nèi)存不同
傳值——調(diào)用程序的實自變量與被調(diào)用程序的虛自變量占用不同內(nèi)存
傳址——調(diào)用程序的實自變量與被調(diào)用程序的虛自變量占用同一地址的內(nèi)存,也就是說,在做參數(shù)傳遞時,調(diào)用程序中的實自變量是將自己本身的內(nèi)存地址傳給被調(diào)用程序的虛自變量
(3)虛自變量更改結(jié)果不同
傳值——使用傳值調(diào)用可以防止變量被程序修改
傳址——被調(diào)用程序可以通過虛自變量將值傳回給調(diào)用程序
5.什么是程序多載?
程序多載是使用不同的自變量串行或數(shù)據(jù)類型來加以區(qū)分相同名稱的程序。
Structure是值類型,classe是引用類型 Structure用棧來分配; classe用堆來分配 structure的成員默認情況下是公共的,而Class的成員變量和常量默認情況下是私有的而其它成員默認情況下是公共的.這與VB6是相兼容的。 structure必須至少有一個非共享的成員變量或事件成員,class可以完全是空的. Structure的成員不能聲明成Protected; class成員可以. 一個structure過程只能在它是一個Shared Sub時才能handle events而且只能通過AddHandler語句;而任何class過程都可以handle events,既可以用Handles關(guān)鍵字或 AddHandler語句。 Structure variable declarations cannot specify initializers, the New keyword, or initial sizes for arrays; class variable declarations can. Structure繼承自ValueType類,不能從其它任何類型繼承; classes可以從任何不是ValueType的類繼承 Structure不能繼承而Class可以 Structure從來不析構(gòu)terminated因此common language runtime (CLR)從來不調(diào)用它的Finalize方法,classe由垃圾回收器進行析構(gòu), 當沒有任何對該類的引用時調(diào)用它的Finalize方法 structure 不需要一個構(gòu)造函數(shù),而Class需要 Structure只能有帶參數(shù)的非共享的構(gòu)造函數(shù); classes 可以有帶或不帶參數(shù)的構(gòu)造函數(shù). 每個Structure都有一個默認的不帶參數(shù)的構(gòu)造函數(shù)以對其成員進行初始化,你可以重新定義該函數(shù)
new 就是實例化,比如實例化一個類,你才能訪問,,
好比,你是張三,把你的地址告訴了我,我在能找到你家在哪,這個過程就可以稱為實例化。
使用New關(guān)鍵字建立一個新的對象和用它屬的類來定義是一樣的。New關(guān)鍵字可以被用作來建立一個窗體、類模塊以及集合的實例。用戶在設(shè)計的時候建立的每一個窗體都是一個類。New關(guān)鍵字能夠用來建立一個類的實例。
可以通過以下步驟來建立一個類的實例:
(1)在窗體上畫一個按鈕和幾個其他的控件。
(2)按鈕的Click事件過程加入以下代碼:
Dim x AS New Form1
x.Show
(3)運行程序,并且點擊幾次按鈕,把最前面的窗體移開,因為窗體是一個有可視界面的類,此時可以看見有很多窗體的拷貝,每一個窗體具有相同的控件,并且出現(xiàn)在一個地方。
(4)將列代碼加到按鈕的click事件過程中:
Dim f As Form1
f=New Form1
f.text="hello"
f.Show
使用New關(guān)鍵字可以從類模塊中定義的類中建立一個新的集合和對象,要知道它們怎樣工作,可以參考下面的例子:
(1)建立一個新的工程,并且在一個名為Form1的窗體上畫一個按鈕控件。
(2)在Project(項目)菜單下,選擇"Add Class"給工程添加一個類
(3)把新的類命名為ShowMe.VB
(4)在該新類中加入如下代碼:
PUblic Class ShowMe
Sub ShowFrm()
Dim frmNew As Form1
frmNew=New Form1
frmNew.Show()
frmNew.WindowState=1
End Sub
End Class
(5)在Button1_click事件的過程中加入如下代碼:Protected Sub Button1_Click(Byval sender As System.Object,_ Byval AS System.EventArgs) Dim clsNew As New ShowMe() clsNew.ShowFrm()End Sub
運行程序,并且點擊幾次按鈕,將看見每創(chuàng)建一個ShowMe類的新的實例時,在桌面上有一個最小化的窗體的圖標。
New關(guān)鍵字只能用來建立一個類的對象,不能建立一個基于基本的數(shù)據(jù)類型的對象,例如Integer。而且,不能建立一個基于一個具體對象的對象。例如,下面的代碼根據(jù)一個名為SomeClass的類,建立了一個名為Objx的對象,面后又錯誤地企圖根據(jù)對象Objx再建立一個其他的對象:
Dim Objx As New SomeClass()
Dim Objx AS New Objx()
以上代碼是非法的。
呵呵##~
1、先定義一個結(jié)構(gòu)體
2、初始化并定義一個結(jié)構(gòu)體的變量
3、使用該變量即可