實(shí)例化一個(gè)對(duì)象使用New,實(shí)例化就是調(diào)用一次構(gòu)造函數(shù) 比如:
創(chuàng)新互聯(lián)建站成都網(wǎng)站建設(shè)按需網(wǎng)站策劃,是成都網(wǎng)站設(shè)計(jì)公司,為資質(zhì)代辦提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺(tái)程序開(kāi)發(fā)等。成都網(wǎng)站改版熱線:18982081108
Dim A As New TR(“dsdsd”) ‘若該TR對(duì)象的構(gòu)造函數(shù)有參數(shù)ByVal s As String
A.fun() '使用一些公開(kāi)方法,屬性
如果僅僅是這樣:
Dim A As TR
將不會(huì)執(zhí)行構(gòu)造函數(shù),你將不能使用一些公開(kāi)方法,屬性
A.fun() ’錯(cuò)誤
'--------------------
百度VB2010(VB.NET)吧建設(shè)發(fā)展中,需要你的支持和幫助!!!
快加入我們吧!發(fā)表你的疑問(wèn),經(jīng)驗(yàn),程序,分享..
讓我們共同進(jìn)步!
是這樣的,VB.NET用的是.NET FRAMEWORK的類庫(kù),所以,在實(shí)例化一個(gè)對(duì)象的時(shí)候,要用NEW,因?yàn)榭蚣艿讓佣际穷?。?shí)例化之后,才能使用。你把一個(gè)form窗體new了,分配了空間到托管堆上,然后才能show方法把窗體展示出來(lái) 沒(méi)有new的,有兩種,一個(gè)是靜態(tài)類,一個(gè)是元數(shù)據(jù)類型。
new
就是實(shí)例化,比如實(shí)例化一個(gè)類,你才能訪問(wèn),,
好比,你是張三,把你的地址告訴了我,我在能找到你家在哪,這個(gè)過(guò)程就可以稱為實(shí)例化。
使用New關(guān)鍵字建立一個(gè)新的對(duì)象和用它屬的類來(lái)定義是一樣的。New關(guān)鍵字可以被用作來(lái)建立一個(gè)窗體、類模塊以及集合的實(shí)例。用戶在設(shè)計(jì)的時(shí)候建立的每一個(gè)窗體都是一個(gè)類。New關(guān)鍵字能夠用來(lái)建立一個(gè)類的實(shí)例。
可以通過(guò)以下步驟來(lái)建立一個(gè)類的實(shí)例:
(1)在窗體上畫(huà)一個(gè)按鈕和幾個(gè)其他的控件。
(2)按鈕的Click事件過(guò)程加入以下代碼:
Dim
x
AS
New
Form1
x.Show
(3)運(yùn)行程序,并且點(diǎn)擊幾次按鈕,把最前面的窗體移開(kāi),因?yàn)榇绑w是一個(gè)有可視界面的類,此時(shí)可以看見(jiàn)有很多窗體的拷貝,每一個(gè)窗體具有相同的控件,并且出現(xiàn)在一個(gè)地方。
(4)將列代碼加到按鈕的click事件過(guò)程中:
Dim
f
As
Form1
f=New
Form1
f.text="hello"
f.Show
使用New關(guān)鍵字可以從類模塊中定義的類中建立一個(gè)新的集合和對(duì)象,要知道它們?cè)鯓庸ぷ?,可以參考下面的例子?/p>
(1)建立一個(gè)新的工程,并且在一個(gè)名為Form1的窗體上畫(huà)一個(gè)按鈕控件。
(2)在Project(項(xiàng)目)菜單下,選擇"Add
Class"給工程添加一個(gè)類
(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事件的過(guò)程中加入如下代碼:Protected
Sub
Button1_Click(Byval
sender
As
System.Object,_
Byval
AS
System.EventArgs)
Dim
clsNew
As
New
ShowMe()
clsNew.ShowFrm()End
Sub
運(yùn)行程序,并且點(diǎn)擊幾次按鈕,將看見(jiàn)每創(chuàng)建一個(gè)ShowMe類的新的實(shí)例時(shí),在桌面上有一個(gè)最小化的窗體的圖標(biāo)。
New關(guān)鍵字只能用來(lái)建立一個(gè)類的對(duì)象,不能建立一個(gè)基于基本的數(shù)據(jù)類型的對(duì)象,例如Integer。而且,不能建立一個(gè)基于一個(gè)具體對(duì)象的對(duì)象。例如,下面的代碼根據(jù)一個(gè)名為SomeClass的類,建立了一個(gè)名為Objx的對(duì)象,面后又錯(cuò)誤地企圖根據(jù)對(duì)象Objx再建立一個(gè)其他的對(duì)象:
Dim
Objx
As
New
SomeClass()
Dim
Objx
AS
New
Objx()
以上代碼是非法的。
呵呵##~
內(nèi)存不會(huì)增加,是自動(dòng)釋放,重新定義New ArrayList后集合aa原值所占空間自動(dòng)釋放
實(shí)際上 Dim aa as ArrayList : aa = New ArrayList可以合并放在循環(huán)體內(nèi)如
Do While .....
Dim aa As New ArrayList
........
........
Loop
顧名思義,new就是給變量賦值一個(gè)新的對(duì)象
dim不加new就是說(shuō)變量是XX類型的,但它不是一個(gè)真正的XX對(duì)象。如果給這個(gè)變量賦值的話,實(shí)際上就是把某一對(duì)象的指針存到變量里,它依舊不是一個(gè)對(duì)象
一個(gè)普通的類,里面有一些數(shù)據(jù),你要弄一個(gè)對(duì)象的話,需要初始化所有類中的數(shù)據(jù)并調(diào)用構(gòu)造函數(shù)。這時(shí)候我們就用new了。如果你不用new,然后直接使用的話,會(huì)引發(fā)null異常
當(dāng)然上面的討論不包括Integer、String、Long這樣的數(shù)值類型,這些不能用new