5.3面向?qū)ο蟮墓δ軐?shí)現(xiàn)_第1頁
5.3面向?qū)ο蟮墓δ軐?shí)現(xiàn)_第2頁
5.3面向?qū)ο蟮墓δ軐?shí)現(xiàn)_第3頁
5.3面向?qū)ο蟮墓δ軐?shí)現(xiàn)_第4頁
5.3面向?qū)ο蟮墓δ軐?shí)現(xiàn)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1/15.3面向?qū)ο蟮墓δ軐?shí)現(xiàn)..面向?qū)ο蟮墓δ軐?shí)現(xiàn)一、教學(xué)目標(biāo)1、知識與技能(1)認(rèn)識創(chuàng)建類的的方法(2)認(rèn)識對象的聲明和實(shí)例化的方法。

(3)了解利用VB進(jìn)行面向?qū)ο蟪绦蛟O(shè)計的一般過程。

2、過程與方法(1)在VB中創(chuàng)建并使用類。

(2)掌握利用VB進(jìn)行面向?qū)ο蟪绦蛟O(shè)計的一般過程。

3、情感態(tài)度和價值觀(1)關(guān)注面向?qū)ο蟪绦蛟O(shè)計的功能實(shí)現(xiàn)。

(2)產(chǎn)生對面向?qū)ο蟮墓δ軐?shí)現(xiàn)學(xué)習(xí)的愿望。

(3)從思想上把握面向?qū)ο蟪绦蛟O(shè)計的一般過程。

二、重點(diǎn)難點(diǎn)教學(xué)重點(diǎn):

(1)創(chuàng)建類。

(2)對象的聲明和實(shí)例化。

教學(xué)難點(diǎn):

(1)在類中創(chuàng)建方法。

(2)在類中創(chuàng)建屬性。

三、教學(xué)環(huán)境1、教材處理..教材以廣東教育出版社的信息技術(shù)(選修一)《算法與程序設(shè)計》第五章第三節(jié)內(nèi)容為框架,主題是面向?qū)ο蠊δ艿膶?shí)現(xiàn)。

為了與第一節(jié)內(nèi)容相銜接,部分內(nèi)容參考了上??平贪娴钠胀ǜ咧行畔⒓夹g(shù)課程實(shí)驗(yàn)教材《算法與程序設(shè)計》。

采用講解、任務(wù)驅(qū)動、實(shí)踐和學(xué)生自主學(xué)習(xí)相結(jié)合的學(xué)習(xí)方法。

2、預(yù)備知識學(xué)生已認(rèn)識面向?qū)ο蟪绦蛟O(shè)計的基本思想,初步了解了類、對象等概念,通過比較得知兩種程序設(shè)計方法的優(yōu)劣所在。

有了這些基礎(chǔ),學(xué)習(xí)者明顯產(chǎn)生了想進(jìn)一步學(xué)習(xí)面向?qū)ο笤O(shè)計知識的欲望。

3、硬件要求:

計算機(jī)機(jī)房或網(wǎng)絡(luò)教室。

4、所需軟件:

學(xué)生機(jī)要安裝VB6.0或以上版本。

5、所需課時:

1課時。

四、教學(xué)過程導(dǎo)入:

1、簡要介紹本節(jié)課的教學(xué)目標(biāo):

學(xué)會在VB中創(chuàng)建類和類的屬性、方法。

學(xué)會對象的創(chuàng)建和引用。

2、復(fù)習(xí)導(dǎo)入。

前面我們已經(jīng)學(xué)習(xí)了面向?qū)ο蟪绦蛟O(shè)計的核心概念:

類和對象、屬性、方法和事件等。

而且初步在程序中運(yùn)用了面向?qū)ο蟮乃枷雭碓O(shè)計調(diào)試程序。

那么類和對象在VB中是怎樣創(chuàng)建和引用的呢?(一)創(chuàng)建類創(chuàng)建類的完整過程包括:

先創(chuàng)建一個空白類,然后為這個類定義屬性,再定義這個類的方法。

下面是在VB中創(chuàng)建Student類的全過程。

1、創(chuàng)建類(1)選擇文件新建工程選項,建立一個標(biāo)準(zhǔn).EXE新工程;..(2)選擇工程添加類模塊選項,打開類模塊窗口;(3)通過屬性窗口將該類命名為Student,如下圖一和圖二所示:

圖二:

工程管理器窗口中的類這樣就創(chuàng)好了一個Student類,目前在類代碼窗口還是空白,因此還是一個空白類。

接下來在類代碼窗口可以定義該類的屬性。

2、創(chuàng)建屬性創(chuàng)建類模塊后,可以通過兩種方式為類添加屬性,即使用公共變量和使用屬性過程。

(1)公共變量使用公共變量創(chuàng)建屬性是最簡單的方法。

只要在類模塊的聲明段輸入即可。

(類模塊結(jié)構(gòu)就像一個結(jié)構(gòu)化的程序)定義屬性的語句如下:

Public(Private)屬性名As類型..例如:

在活動二中定義Student的屬性段如下:

Privatem_nameAsString姓名Privatem_score(3)AsInteger三門課程分?jǐn)?shù)的數(shù)組注:

用關(guān)鍵字Public聲明的屬性對應(yīng)用程序是可見的,程序的任意部分都可能改變屬性值。

例如,可以將任何具有正確數(shù)據(jù)類型的值賦給m_name屬性。

這對于對象的屬性來說存在不安全的因素。

要將這個屬性設(shè)置成只讀,就要使用下面要講的利用屬性過程創(chuàng)建屬性。

用關(guān)鍵字Private聲明的屬性對應(yīng)用程序來說是不可見的,達(dá)到了隱藏數(shù)據(jù)的效果,只有屬性內(nèi)部的方法(過程或函數(shù))可調(diào)用該屬性值。

(2)屬性過程屬性過程是在類中建立屬性最安全、最靈活的方法。

當(dāng)用戶訪問一個屬性時,屬性過程能執(zhí)行代碼。

VB系統(tǒng)提供了三種可用的屬性過程:

=1\*GB3①PropertyGet:返回屬性值的一個函數(shù)。

供用戶讀取對象的屬性值。

=2\*GB3②PropertyLet:設(shè)置屬性值的一個子程序。

供用戶寫入對象的屬性值。

=3\*GB3③PropertySet:PropertyLet的一個特例,供用戶寫入對象的屬性值為一對象。

屬性過程一般成對出現(xiàn),即具有相同過程名(即屬性名)的PropertyGet和PropertyLet(Set),這樣定義屬性值可讀可寫。

若只有PropertyGet過程,則該屬性為只讀屬性,即應(yīng)用程序不能直接改變該屬性的值。

..例:

將密碼PassWord設(shè)置為只讀屬性,用戶不能直接改變;屬性Name可讀寫,則相應(yīng)程序代碼為:

程序說明:

上述模塊聲明了私有變量mPassWord和mName用于在屬性過程間傳遞數(shù)據(jù),對外部程序來說是不可見的,私有變量只在聲明的類模塊內(nèi)部過程進(jìn)行控制。

例如,輸入姓名值時,該值只能通過PropertyLetName()屬性過程保存在變量mName中;讀取屬性值時,必須調(diào)用PropertyGetName()屬性過程將mName的值傳遞給Name屬性。

這就是數(shù)據(jù)的隱蔽性。

3、創(chuàng)建方法類的方法就是在類中定義的過程或函數(shù)。

前面我們已經(jīng)學(xué)過在VB中創(chuàng)建過程或函數(shù)使用Sub或Function關(guān)鍵字。

..注:

用Private定義的作用域,只能調(diào)用類中的代碼。

用Public定義的作用域,可以在類外部調(diào)用代碼。

創(chuàng)建一個方法的步驟:

(1)確定方法是公共的還是私有的。

那些將從該類外部訪問的方法應(yīng)當(dāng)聲明為Public,其他的方法應(yīng)當(dāng)聲明為Private。

(2)確定該方法是否返回值。

如果一個方法必須返回一個值,必須定義為函數(shù)(Function),否則可以定義為一個過程(Sub)。

(3)編寫該方法的代碼。

如前面活動二中的代碼馬上行動:

運(yùn)用屬性和方法定義的原理,仔細(xì)閱讀第一節(jié)中Student類的定義,解釋其中屬性的公私有性質(zhì)及對這些屬性進(jìn)行讀寫操作的方法。

..Privatem_nameAsStringPrivatem_score(3)AsIntegerPublicSubSetInf(nameAsString,s1AsInteger,s2AsInteger,s3AsInteger)m_name=namem_score(1)=s1m_score(2)=s2m_score(3)=s3EndSubPublicFunctionGetName()AsStringGetName=m_nameEndFunctionPublicFunctionGetScore(indexAsInteger)AsIntegerGetScore=m_score(index)EndFunctionPublicFunctionGetTotal()AsSingleGetTotal=m_score(1)*0.2+m_score(2)*0.5+m_score(3)*0.3EndFunctionPublicFunctionJudge()AsStringIfm_score(1)=85Andm_score(2)=85Andm_score(3)=85ThenJudge=優(yōu)秀ElseIfGetTotal()70Andm_score(1)=60Andm_score(2)=60And..m_score(3)=60ThenJudge=合格ElseJudge=無EndIfEndFunction(二)對象的聲明和實(shí)例化在類模塊中創(chuàng)建一個類后,該類本身不起作用,沒有屬性值和行為動作。

通過創(chuàng)建一個對象來使用和測試一個類,這個對象就是該類的一個實(shí)例。

通過這個實(shí)例來引用類中的屬性和方法。

在面向?qū)ο蟪绦蛟O(shè)計中,實(shí)際操作的是類的具體實(shí)例──對象,類只是一個模板。

因此創(chuàng)建一個對象的過程又稱為實(shí)例化。

每次使用一個類的新對象時,都必須進(jìn)行以下工作:

(1)聲明對象變量;(2)創(chuàng)建對象;..(3)使用對象的屬性、方法等;(4)釋放對對象的引用。

下面以Student類的對象使用和測試為例,學(xué)習(xí)在應(yīng)用程序中使用類的方法。

1、聲明對象變量格式:

Dim對象變量名As類名例如,要為學(xué)生類聲明一個對象變量──stu,可定義如下:

DimstuAsStudent2、創(chuàng)建對象我們可以將聲明變量和創(chuàng)建對象的功能集于一體,創(chuàng)建對象。

創(chuàng)建對象的語句格式為:

格式:

Dim對象變量名AsNew類名例如:

在活動二中定義了一個Stu對象DimstuAsNewStudent注:

使用New關(guān)鍵字聲明的對象變量同時為其分配內(nèi)存空間。

聲明對象變量以后,要創(chuàng)建變量則使用語句:

Set對象變量名=New類名3、調(diào)用對象的方法以活動二為例,調(diào)用對象的方法如下:

。

將學(xué)生的信息賦給對象CallStu.SetInfo(StName,sc1,sc2,sc3)‘獲取在文本框中輸入的姓名..stu.GetName()‘獲取在文本框中輸入的各科分?jǐn)?shù)stu.GetScore(1)stu.GetScore(2)stu.GetScore(3)計算總分stu.GetTotal()判斷證書類型stu.Judge()4、釋放對對象的引用為了提高計算機(jī)內(nèi)存的使用效率,最重要的一點(diǎn)就是要及時清空內(nèi)存中那些不再需要的代碼。

一個新對象的聲明就意味著為該對象分派了必須的內(nèi)存單元。

如果該對象不再需要可及時釋放。

格式:

Set對象名=Nothing例如:

不再需要對象Stu時,可以這樣釋放,SetStu=Nothing至此,可以將在VB中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論