教學(xué)目標(biāo)了解面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基本原理及主要特點(diǎn)——抽_第1頁
教學(xué)目標(biāo)了解面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基本原理及主要特點(diǎn)——抽_第2頁
教學(xué)目標(biāo)了解面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基本原理及主要特點(diǎn)——抽_第3頁
教學(xué)目標(biāo)了解面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基本原理及主要特點(diǎn)——抽_第4頁
教學(xué)目標(biāo)了解面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基本原理及主要特點(diǎn)——抽_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論