vb窗體例項化與set語句的用法

2021-10-04 18:19:21 字數 2617 閱讀 5148

類(class)是物件導向程式設計(oop,object-oriented programming)實現資訊封裝的基礎。類是一種使用者定義的引用資料型別,也稱類型別。每個類包含資料說明和一組運算元據或傳遞訊息的函式。類的例項稱為物件。

物件(object) 是一件事、乙個實體、乙個名詞,可以獲得的東西,可以想象有自己的標識的任何東西。一些物件是活的,一些物件不是。現實世界中的例子有汽車、人、房子、桌子、植物、支票、雨衣。

例項和物件是一種東西,叫法不同而已,例項化也可理解為:把抽象的類變成具體的物件。

舉個很簡單的例子,你建立了乙個貓的類,等你例項化,就定位到某乙隻貓身上了。這只貓就有了貓的共同屬性,例如重量、顏色等。那些屬性的屬性值就是這只貓的特徵。

vb6是基於物件導向的語言,他沒有繼承的概念,所謂「標準控制項」,包括窗體,都是直接使用的物件。

但學生裡的**任然將窗體例項化:

sub main()

set fmainform = new frmmain '顯示主窗體例項

fmainform.show

end sub

也許是為了讓大家習慣物件導向,如果抽象到生活中,你想要有一扇窗,就必須安裝一扇,安裝上的這一扇就相當於new了個物件,有了這個物件就可以進行操作了。

在其他語言中,例如c++/c#/ ,要使用乙個窗體,是通過首先繼承乙個類並過載相關的屬性與方法,然後例項化這個類來實現的。

set 語句:引用類賦值,一般是對vb中除基本資料型別以外的變數進行賦值的語句。指標copy了乙份給了新變數,新變數處理複製過來的指標所指向的物件。

let語句:值型別賦值,資料copy了乙份給了新變數,新變數處理複製過來的數值,如:let a=b,let可省略不寫。

語法:set objectvar =

objectvar:必需的。是變數或屬性的名稱,遵循標準變數命名約定。如果 objectvar 包含了乙個物件引用,則在賦新值時釋放該引用。

new:可選的。通常在宣告時使用 new,以便可以隱式建立物件。如果 new 與 set 一起使用,則將建立該類的乙個新例項。

dim a as object		 'a 變數沒有例項化,只是說明a是這麼個型別的變數,但他的功能是不可用的'

dim a as new

object

'這時a是例項化的,可以使用'

'或者以下兩種寫法也可以將a例項化'

set a=

createobject

("******"

) set a=

newobject

這個時候建立出來的物件實際只和a聯絡在一起,如果有set b=a這時候,相當於這個a例項又有了b這個名字,兩個變數操作同乙個物件例項:

dim a as new collection

'定義a為乙個集合物件'

a.add "test"

'a 集合中新增乙個元素'

dim b as object '定義b'

set b = a '令b引用a,也就是b的指標指向了a'

debug.print b(1

)'這時候b的第乙個元素裡,我們可以得到剛才在a新增的那個test'

b.add "addition"

'在b新增乙個元素'

debug.print a(1

),a(

2)'在a裡同樣能得到新增的這個元素'

object expression(物件表示式):必需的。由物件名,所宣告的相同物件型別的其它變數,或者返回相同物件型別的函式或方法所組成的表示式。

nothing:可選的。斷絕 objectvar 與任何指定物件的關聯。若沒有其它變數指向 objectvar 原來所引用的物件,將其賦為 nothing 會釋放該物件所關聯的所有系統及記憶體資源。

說明:為確保合法,objectvar 必須是與所賦物件相一致的物件型別。

dim、private、public、redim以及 static 語句都只宣告了引用物件的變數。

下面的示例說明了如何使用 dim 來宣告 form1 型別的陣列。form1 實際上還沒有例項。然後使用 set 將新建立的 form1 的例項的引用賦給 mychildforms 變數。在 mdi 應用程式中可以使用這些**來建立子窗體。

dim mychildforms

(1 to 4

) as form1

set mychildforms(1

)= new form1

set mychildforms(2

)= new form1

set mychildforms(3

)= new form1

set mychildforms(4

)= new form1

通常,當使用 set 將乙個物件引用賦給變數時,並不是為該變數建立該物件的乙份副本,而是建立該物件的乙個引用。可以有多個物件變數引用同乙個物件。因為這些變數只是該物件的引用,而不是物件的副本,因此對該物件的任何改動都會反應到所有引用該物件的變數

用例項工廠的方法例項化bean

在例項化bean時,除了setter,constructor方法外,還有例項工廠方法,和靜態工廠方法。看 people類的 如下 package com.timo.domain public class people public void setname string name public in...

附例項!實現iframe父窗體與子窗體的通訊

本文主要會介紹如何基於messengerjs,實現iframe父窗體與子窗體間的通訊,傳遞資料資訊。同時本文會提供乙個可執行的例項 實現在父窗體中,獲取到來自子窗體的資料的效果。1 需要在當前的前端專案中,使用iframe巢狀別的站點頁面。2 當子窗體觸發了乙個事件後,要給父窗體傳乙個跳轉位址的ur...

子窗體與父窗體間的傳值 用委託實現

這2天因為需要做winform程式,需要把asp的乙個庫存異動功能模組轉成winform程式,所以就遇見了窗體之間傳值的這種情況 以前在肇慶上班的時候也做過這樣的情形,當時還是初始做winfom程式,主要是機器通訊方面的,和單件模式聯絡比較密切。時隔差不多4個月,真的快忘記了,居然有開始做這個,所以...