asp class類用法ASP技術

來源:互聯網
上載者:User
asp class類用法

asp class

 

嚴格地說,ASP 並不是一門程式設計語言,所以不存在類這一概念,我們這裡說 ASP 類是指 ASP 的程式設計語言 VBScript 在 ASP 裡應用時的類。

ASP 類比較簡單,它不具有真正意義類的繼承、重載等特性,儘管如此,它仍然是非常有用的,它降低了我們編程的複雜度,使我們的程式模組更加合理。

ASP 類支援什麼 ASP 類比較簡單,它不具有真正意義類的繼承、重載等特性。它支援以下內容:

公有成員變數、私人成員變數、屬性

公有成員函數、私人成員函數

建構函式、解構函式

建立和使用一個最簡單的 ASP 類 一些初學者不理解類和對象的區別,打個比方,類好比是圖紙,對象好比是根據圖紙製作出的實物。 該樣本給出了     ASP 類及對象的簡單樣本,該類僅含有一個成員函數,用以解釋類的基本格式,並給出建立、釋放對象的方法。 詳細內容 ASP 類成員變數、成員函數、構造解構函式 這是一個比較完整的類講解,所有的講解都有注釋的方式寫在程式的旁邊。 通過閱讀本節,對 ASP 類有一個較為全面的理解,可以進行     ASP 類別模組的開發。 詳細內容 ASP 類屬性 ASP 類屬性與 ASP 類公有成員變數相比具有以下一些特點。

可以在賦值的同時執行其它功能

可以確定賦值範圍

可以將設定唯讀、唯寫屬性

所以 ASP 類屬性也是比較常用且重要的。 詳細內容 ASP 類組合 ASP 類的功能實在有限,所以有時我們要實現複雜的功能,只好用組合來實現。

建立一個最簡單的 ASP 類

class CFoo

       sub PrintHello()

           response.Write "Hello World!"

       end sub

end class

可以看出,ASP 類的基本結構是:

class 類名

       類代碼

end class

使用一個最簡單的 ASP 類

dim obj

set obj = new CFoo '使用 set new 建立對象,由於不是伺服器組件,所以不能用 server.CreateObject 建立

call obj.PrintHello '對象名稱後加點,再跟成員變數、屬性或函數,表示調用該對象的成員變數、屬性或函數,將顯示 Hello World!

set obj = nothing '釋放對象

ASP 類裡不能重載建構函式,所以我們不能使用類似於 set obj = new CFoo("param") 的語句來建立類。

ASP 類的功能實在有限,所以有時我們要實現複雜的功能,只好用組合來實現。

class CFish

       sub Swim()

       end sub

end class

class CBird

       sub Fly()

       end sub

end class

class CAnimal

       dim fish

       dim bird

       private sub class_initialize()

           set fish = new CFish

           set bird = new CBird

       end sub

       private sub class_terminate()

           set fish = nothing

           set bird = nothing

       end sub

end class

dim animal

set animal = new CAnimal

call animal.fish.Swim() '魚遊

call animal.bird.Fly() '鳥飛

set animal = nothing

ASP 類屬性

class CFoo

       private pvt

       '屬性寫

       public property let propName(v)

           pvt = v

       end property

       '屬性讀

       public property get propName()

           PropName = pvt

       end property

end class

dim obj

set obj = new CFoo

obj.propName = "屬性值"

response.Write(obj.propName) '顯示“屬性值”

set obj = nothing

可以看出屬性值相當於是在私人成員變數與外界之間架了一座橋樑,使雙方可以互相通訊。

有人就會問屬性跟公有成員變數一樣,它的存在又有什麼獨立的意義呢?

1、可以在賦值的同時執行其它功能

如下代碼,相當於同時為兩個成員變數賦值

       public property let propName(v)

           pvt = v

           另一個私人成員變數名 = "pvt 的值:" & v

       end property

2、可以確定賦值範圍

假如上例中的屬性寫改為如下:

       public property let propName(v)

           if Len(v) <= 5 then

               pvt = v

           end if

       end property

執行 obj.propName = "個十百千萬億" 將不會為 pvt 賦值成功,因為該字串的長度超過了 5。

3、可以將設定唯讀、唯寫屬性

如上例中,假如我們將 let 函數去掉,調用 obj.propName = "屬性值" 就會出錯,因為這時候函數只可讀。

class CFoo

       dim publicParam '用 dim 申明公有成員變數

       private privateParam '用 private 申明私人成員變數

       'publicParam = "公有" '不能在 class 標記以內、類函數以外為成員變數賦值

       'const MAX_LEN = 5 '不能在 class 標記以內、類函數以外使用 const

       '該函數為建構函式,在使用 set new 建立對象時,自動執行

       private sub class_initialize()

           publicParam = "公有" '可以在這裡為成員變數賦值

           privateParam = "私人"

       end sub

       '該函數為解構函式,在使用 set nothing 釋放對象時,自動執行

       private sub class_terminate()

           response.Write "釋放對象"

       end sub

       '公有成員函數(過程)

       '成員函數(過程)不需要也不能申明

       sub PrintParam(index)

           if index = 1 then

               call PrintPublicParam()

           elseif index = 2 then

               call PrintPrivateParam()

           end if

       end sub

       '私人成員函數(過程)

       '只是比公有成員函數(過程)多一個 private

       private sub PrintPublicParam()

           response.Write publicParam

       end sub

       private sub PrintPrivateParam()

           response.Write privateParam

       end sub

end class

dim obj

set obj = new CFoo '自動調用 class_initialize 函數,為 publicParam、privateParam 賦值

obj.publicParam = "新的公有"

obj.privateParam = "新的私人" '將發生錯誤,因為 privateParam 是私人變數

call obj.PrintParam(1) '顯示 publicParam 的值

call obj.PrintPublicParam() '將發生錯誤,因為 PrintPublicParam 是私人函數

set obj = nothing '自動調用 class_terminate 函數,顯示“釋放對象”

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.