新聞中心
VB.NET實例化類
可以,但是變量不能用ClassA或B來定義,可以用Object,或ClassA,ClassB的基類,,使用類的成員時,再把變量類型轉換成相應的類
成都創(chuàng)新互聯(lián)公司為客戶提供專業(yè)的成都網站設計、成都網站制作、外貿網站建設、程序、域名、空間一條龍服務,提供基于WEB的系統(tǒng)開發(fā). 服務項目涵蓋了網頁設計、網站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、成都做手機網站等網站方面業(yè)務。
vb.net點擊按鈕更新另一個窗口的數(shù)據(jù)
首先窗口也是一個類,而顯示出來的可以操作的那個窗口則是這個類的實例
你的意思是點擊a的按鈕之后單純更新b的數(shù)據(jù)還是要改變b上面的控件顯示的數(shù)據(jù)?
如果是前者,也就是b不用在顯示上有任何變動的話,那么:
如果b是a的子窗口,那把b窗口的變量名變成是a的全局變量,然后再b把那個要變的數(shù)據(jù)設為全局并且是public,這樣通過“b窗口變量名.要變的數(shù)據(jù)”就能訪問到b里面的變量
如果b不是別人子窗口那么b就不具備變量名了(比如說你是要從子窗口改變主窗口的變量),那你只能通過b的類名(就是name屬性)來訪問它的數(shù)據(jù),這時就只能把你要改的那個數(shù)據(jù)設為static了。
如果你懂了前面我說的,然后你問題是后者,就是說要通過a的按鈕改變b的控件的狀態(tài)的話,那么由于b上面的控件不是public的,所以沒法訪問,那么,
方法一:在實例化b之后,把b上面要改的那個控件作為變量傳給a
方法二:有時因為各種原因無法使用方法一,那就只能把你將要做的修改做成b里面一個帶變量的函數(shù),但由于靜態(tài)函數(shù)不能調用控件,所以要另外定義一個委托,然后設置一個該委托的靜態(tài)全局變量,然后再b初始化的時候用這個函數(shù)作為變量執(zhí)行構造函數(shù),這樣就能在a調用b的那個更改控件狀態(tài)的函數(shù)了。
簡單總結一下:把設計的窗體當成類,把實際操作的窗體看成這些類實體化后的變量,然后通過全局的公共變量、函數(shù)進行互動,由于主窗體是系統(tǒng)自動打開的,所以沒有變量名,那就只能通過類名來訪問,所以要把需要被訪問的變量、函數(shù)設為靜態(tài),但由于靜態(tài)函數(shù)無法訪問控件,所以只能設置靜態(tài)的委托變量并在窗體實例化的時候加載那個要訪問的非靜態(tài)函數(shù)。
VB.NET中標準的實體類怎么寫的,請教VB高手指導
'代碼來源:代碼街codejie.net
'由于在vb.net里變量名不區(qū)分大小寫(StuName和stuname是一樣的),所以個別變量名需要修改
'在vb.net中,模塊級變量的命名原則是以m_開頭
Public Class Student
Private m_stuNo As String '學生號字段
Private m_stuName As String '學生姓名字段
Private m_stuAge As Integer '學生年齡字段
Private m_stuAddress As String '學生住址字段
'無參構造方法
Public Sub New()
End Sub
'有參構造方法
Public Sub New(ByVal stuNo As String, ByVal stuName As String, ByVal stuAge As Integer, ByVal stuAddress As String)
m_stuNo = stuNo
m_stuName = stuName
m_stuAge = stuAge
m_stuAddress = stuAddress
End Sub
'學生號屬性
Public Property StuNo() As String
Get
Return m_stuNo
End Get
Set(ByVal value As String)
m_stuNo = value
End Set
End Property
'學生姓名屬性
Public Property StuName() As String
Get
Return m_stuName
End Get
Set(ByVal value As String)
m_stuName = value
End Set
End Property
'學生年齡屬性
Public Property StuAge() As Integer
Get
Return m_stuAge
End Get
Set(ByVal value As Integer)
m_stuAge = value
End Set
End Property
'學生住址屬性
Public Property StuAddress() As String
Get
Return m_stuAddress
End Get
Set(ByVal value As String)
m_stuAddress = value
End Set
End Property
End Class
VB.net中類的實例化
1.不正確
Dim abc As myClass,定義一個可以引用myClass類型對象的變量abc。這個abc變量存在于棧上。
abc=New myClass。New myClass創(chuàng)建myClass實例對象,這個對象存在于托管堆上。然后(同時)讓abc引用(指向)這個對象。
abc變量在棧上,而對象在托管堆上。
abc儲存的是對象的地址,而不是對象本身。
看下面的代碼
Dim a As myClass,b As myClass,c As myClass
a=New myClass
b=a
c=a
整個過程中只創(chuàng)建了一個myClass對象,位于托管堆上。
三個myClass類型的變量a、b、c位于棧上,都指向了這一個myClass對象
2.類的成員分 實例成員 和 靜態(tài)成員
實例成員 必須在實例對象上調用
靜態(tài)成員 可以直接調用,不需要實例對象。
vb.net 如何在一個項目中創(chuàng)建類,并且使用他?
在任意form類或模塊中都可以創(chuàng)建類,跟建立函數(shù)和過程一樣。
示例:
public class form1
‘創(chuàng)建一個屬于form的子類,名稱為【類名】。
public class 類名
’定義類成員text
public text as string
end class
‘定義一個【類名】類的公共變量。
dim 類名1 as 類名
’定義一個過程,使用【類名】類的text成員
public sub 過程
‘實例化【類名1】
類名1=new 類名
類名1.text=“賦值”
’定義一個【新類】類的私用變量,并實例化。
dim 新類1 as new 新類
新類1.name=“一個字符串”
新類1.age=12
end sub
end class
‘’‘創(chuàng)建一個與form同級的類,名稱為【新類】
public class 新類
public sub new()
end sub
public name as string
public age as integer
end class
在模塊中使用:
public class module1
dim a as new form1.類名
end module
vb.net 中new的具體用法?以及實例化是什么意思?.
new
就是實例化,比如實例化一個類,你才能訪問,,
好比,你是張三,把你的地址告訴了我,我在能找到你家在哪,這個過程就可以稱為實例化。
使用New關鍵字建立一個新的對象和用它屬的類來定義是一樣的。New關鍵字可以被用作來建立一個窗體、類模塊以及集合的實例。用戶在設計的時候建立的每一個窗體都是一個類。New關鍵字能夠用來建立一個類的實例。
可以通過以下步驟來建立一個類的實例:
(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關鍵字可以從類模塊中定義的類中建立一個新的集合和對象,要知道它們怎樣工作,可以參考下面的例子:
(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關鍵字只能用來建立一個類的對象,不能建立一個基于基本的數(shù)據(jù)類型的對象,例如Integer。而且,不能建立一個基于一個具體對象的對象。例如,下面的代碼根據(jù)一個名為SomeClass的類,建立了一個名為Objx的對象,面后又錯誤地企圖根據(jù)對象Objx再建立一個其他的對象:
Dim
Objx
As
New
SomeClass()
Dim
Objx
AS
New
Objx()
以上代碼是非法的。
呵呵##~
文章題目:關于vb.net類實體化的信息
文章來源:http://ef60e0e.cn/article/dscscce.html