下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、教學(xué)目標(biāo):了解面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基本原理及主要特點(diǎn)抽象性、封裝性、繼承性、多態(tài)性。掌握類和對(duì)象的概念以及如何用類來解決具體問題并在類的基礎(chǔ)上如何派生出新類,以及重載的概念和作用。教學(xué)類型:在多媒體教室直觀講授,引導(dǎo)學(xué)生進(jìn)行類的操作。教學(xué)內(nèi)容:復(fù)習(xí)上次課5.5類的繼承Visual Basic.NET支持類的繼承,允許用戶定義一個(gè)類,作為其他類繼承的依據(jù),繼承類能夠繼承,擴(kuò)充基本類的屬性和方法,繼承類也可以重載基本類的一些方法。例如,把窗體看成一個(gè)類,在Vissal Basic.NET中用戶可以根據(jù)現(xiàn)有的窗體繼承出一個(gè)新的窗體。其中已有類叫做基類(父類),繼承的新類叫做派生類(子類)。1、實(shí)現(xiàn)
2、基本的繼承下面通過例子進(jìn)一步說明為什么要使用繼承。要描述人和雇員,對(duì)于每一個(gè)人來說都有姓名、年齡、性別等信息,對(duì)于公司雇員有以上內(nèi)容以外還有雇員的工作部門及薪水等信息。當(dāng)分開來實(shí)現(xiàn)這兩個(gè)類的時(shí)候,就會(huì)發(fā)現(xiàn)其實(shí)它們有許多相同之處。如果分開編寫這兩個(gè)類的代碼,不僅編寫效率低,而且程序代碼也難以維護(hù),所以最好的方法就是讓它們使用一些相同的代碼,此時(shí)繼承就可以發(fā)揮作用了。使用繼承,可以創(chuàng)建一個(gè)Person類(基類),它包含了name(姓名)、age(年齡)、sex(性別)等屬性所有的共享代碼。然后再創(chuàng)建employee派生類,這個(gè)類是由person類繼承而來的,這樣它們就可以自動(dòng)地獲得所有的公用代碼了
3、?!纠?.3】建立person類及它的派生類employee類。Public Class person Public sname, Iage, ssex Public Property name() As String Get Return sname End Get Set(ByVal value As String) sname = value End Set End Property Public Property age() As Integer Get Return Iage End Get Set(ByVal value As Integer) Iage = value End S
4、et End Property Public Property sex() As String Get Return ssex End Get Set(ByVal value As String) ssex = value End Set End PropertyEnd ClassPublic Class employee Inherits person Dim Ssalary As Single Public Property salary() As Single Get Return Ssalary End Get Set(ByVal value As Single) Ssalary =
5、value End Set End Property Sub Displayemployee() Debug.WriteLine("雇員的姓名:" & name) Debug.WriteLine("雇員的性別:" & sex) Debug.WriteLine("雇員的年齡:" & age) Debug.WriteLine("雇員的薪水:" & salary) End SubEnd ClassModule Module1 Sub Main() Dim aemployee As New
6、employee() = "王強(qiáng)" aemployee.sex = "男" aemployee.age = 25 aemployee.salary = 3600.0 aemployee.Displayemployee() End SubEnd Module2、禁止繼承在默認(rèn)狀態(tài)下,創(chuàng)建的任何類都是可以用作基類,可由這個(gè)基類創(chuàng)建其他的類。但有時(shí)需要?jiǎng)?chuàng)建一個(gè)不被繼承的類,這時(shí)可以在類的聲明中使用NotInheritable關(guān)鍵字。Public NotInheritable Class Class_nameEnd Class使用這
7、個(gè)關(guān)鍵字后,其他代碼都不能使用Inherits關(guān)鍵字來創(chuàng)建一個(gè)由這個(gè)基類繼承二來的子類。3、基類成員在派生類中的作用域通過繼承性創(chuàng)建子類時(shí),新類將從父類獲得所有Public 和 Friend方法、屬性及變量。但在父類中聲明的Private的任何內(nèi)容都不能直接應(yīng)用于新子類的代碼中。例如:可以在上例的person類中重寫age方法,代碼如下:Private Property age() As Integer Get Return Iage End Get Set(ByVal value As Integer) Iage = value End Set End PropertyAge方法聲明為pri
8、vate,所以employee類和其他代碼都不能使用它。當(dāng)然也有一個(gè)列外,就是New方法,構(gòu)造函數(shù)方法必須在每一個(gè)子類中重新定義。有時(shí)public和private并不夠用,需要?jiǎng)?chuàng)建一個(gè)可以用于子類而不能用于客戶代碼的方法,此時(shí)就可以使用protected作用域。當(dāng)某些內(nèi)容聲明為protected時(shí),該元素就不能應(yīng)用于類以外的代碼,但可以應(yīng)用于通過繼承派生出的子類。例如:若將person類當(dāng)中的name、age、sex屬性都聲明為Protected Property name() As StringProtected Property age() As IntegerProtected Prop
9、erty sex() As string那么測(cè)試程序中的下列代碼將不再有效:aemployee. name = “王強(qiáng)”aemployee. sex = “男”aemployee. age = 25但示例中的name、age、sex屬性可以應(yīng)用于employee中的所有代碼,因?yàn)樗^承了父類。為設(shè)置屬性,可以在employee中增加一個(gè)方法setperson():Public Class employee Inherits person Dim Ssalary As SinglePublic Property salary() As Single Get Return Ssalary End
10、Get Set(ByVal value As Single) Ssalary = value End SetEnd PropertySub setperson(ByVal n As String, ByVal a As Integer, ByVal s As String, ByVal c As Single) name = n age = a sex = s salary = cEnd Sub Sub Displayemployee() Debug.WriteLine("雇員的姓名:" & name) Debug.WriteLine("雇員的性別:&qu
11、ot; & sex) Debug.WriteLine("雇員的年齡:" & age) Debug.WriteLine("雇員的薪水:" & salary) End SubEnd ClassModule Module1 Sub Main() Dim aemployee As New employee() aemployee.setperson("王強(qiáng)", 25, "男", 3600.0) aemployee.Displayemployee() End SubEnd Module5.6重載方法V
12、B.NET具有重載方法的功能,可以利用重載來實(shí)現(xiàn)多態(tài)性。重載是可以在一個(gè)類中可多次聲明相同名稱的一種方法,只要每個(gè)聲明都有不同的參數(shù)列表即可。其中參數(shù)列表不同指的是參數(shù)的數(shù)據(jù)類型不同或參數(shù)的個(gè)數(shù)不同。例如:Public Sub show(ByVal x As Integer, ByVal y As Integer)。上面show方法的參數(shù)列表的參數(shù)的類型為(Integer, Integer)。為了重載這個(gè)方法,必須使用不同的參數(shù)列表,例如(Double,Integer)或(Integer,Double)都可以。重載不能只是通過改變函數(shù)的返回值來實(shí)現(xiàn),而是要求實(shí)際參數(shù)的數(shù)據(jù)類型不同。Public Class sum Public Function add(ByVal a As Integer, ByVal b As Integer) As Integer Return a + b End Function Public Function add(ByVal a As Double, ByVal b As Double) As Double Return a + b End FunctionEnd ClassModule Module1 Sub main() D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院護(hù)士辭職報(bào)告(集合15篇)
- 2025年醫(yī)用空氣壓縮機(jī)(系統(tǒng))項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模范
- 2024-2025學(xué)年信豐縣三上數(shù)學(xué)期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 公司原因的辭職報(bào)告模板七篇
- 2025年室內(nèi)清潔健康電器項(xiàng)目提案報(bào)告模板
- 設(shè)計(jì)類實(shí)習(xí)報(bào)告模板集合10篇
- 北京冬奧會(huì)冬殘奧會(huì)總結(jié)表彰大會(huì)觀后感(范文10篇)
- 小學(xué)生誠信勵(lì)志演講稿
- 四年級(jí)教學(xué)計(jì)劃集錦5篇
- 三八婦女節(jié)慰問信(15篇)
- 對(duì)球閥(球閥配件)的檢驗(yàn)要求
- 《計(jì)算機(jī)控制技術(shù)》自學(xué)指導(dǎo)書
- EE系列磁芯參數(shù)
- 晶向指數(shù)與晶面指數(shù)精講
- 畢業(yè)設(shè)計(jì)基于PLC控制的汽車清洗裝置
- 工程勘察現(xiàn)場(chǎng)見證報(bào)告
- GB 6944-2012 危險(xiǎn)貨物分類和品名編號(hào)(高清版)
- 四等水準(zhǔn)測(cè)量外業(yè)記錄表
- 建筑制圖學(xué)習(xí)基礎(chǔ)實(shí)訓(xùn)報(bào)告
- 05標(biāo)準(zhǔn)工時(shí)及產(chǎn)能計(jì)算表
- 懷化職業(yè)技術(shù)學(xué)院就業(yè)工作管理制度匯編 (一)
評(píng)論
0/150
提交評(píng)論