任務(wù)六VisualBasicNET面向?qū)ο笳Z言基礎(chǔ)_第1頁
任務(wù)六VisualBasicNET面向?qū)ο笳Z言基礎(chǔ)_第2頁
任務(wù)六VisualBasicNET面向?qū)ο笳Z言基礎(chǔ)_第3頁
任務(wù)六VisualBasicNET面向?qū)ο笳Z言基礎(chǔ)_第4頁
任務(wù)六VisualBasicNET面向?qū)ο笳Z言基礎(chǔ)_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Visual Basic .NET面向?qū)ο笳Z言基礎(chǔ)VB.NET程序設(shè)計(jì)VB.NET程序設(shè)計(jì)理解面向過程和面向?qū)ο蟮木幊谈拍?理解面向?qū)ο蟮幕靖拍睿簩?duì)象、類、字段、屬性、方法等 理解什么是抽象以及如何從現(xiàn)實(shí)世界中的實(shí)體抽象成類和對(duì)象 創(chuàng)建和使用類 理解類成員的概念,并能夠自定義合適的類成員 繼承 學(xué)習(xí)目標(biāo)問題引入 在前面創(chuàng)建的系統(tǒng)中,操作數(shù)據(jù)庫的代碼是寫在每個(gè)窗體中使得對(duì)數(shù)據(jù)庫操作的代碼維護(hù)起來比較麻煩,代碼量也要重復(fù)編寫。在實(shí)際中,把操作數(shù)據(jù)庫的代碼寫在一個(gè)類中,其它窗體要操作數(shù)據(jù)庫就只要調(diào)用這個(gè)類的方法就可以啦. 面向過程和面向?qū)ο?面向過程 面向過程和面向?qū)ο笫莾煞N不同的軟件開發(fā)方法,也

2、代表著分析問題的兩種不同思路。面向過程就是分析出解決問題所需要的步驟,程序按照步驟A到步驟B來實(shí)現(xiàn),用戶按照一個(gè)個(gè)的步驟來解決具體問題。 面向?qū)ο?面向?qū)ο笫前褬?gòu)成問題的事物分解成各個(gè)對(duì)象,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描述某個(gè)事物在整個(gè)解決問題的步驟中的行為。 1、對(duì)象和類 對(duì)象是實(shí)現(xiàn)世界中各種實(shí)體的抽象表示,它是數(shù)據(jù)和代碼的集合,有自己的狀態(tài)和行為。 類是面向?qū)ο蟮幕靖拍?,是?duì)一組具有相同特征(數(shù)據(jù)元素代碼中稱之為“屬性”)和相同行為(函數(shù)代碼中一般稱之為“方法”)的對(duì)象的抽象描述(用程序代碼定義)。 比如:香蕉是一種水果,蘋果也是一種水果,葡萄、桔子是水果;貓是一種動(dòng)物,

3、狗也是一種動(dòng)物,牛、羊都是動(dòng)物。也就是說現(xiàn)實(shí)生活中,我們可以用分類的方法去區(qū)別不同種類的東西。在這里,香蕉、蘋果、葡萄和桔子就是具體的“對(duì)象”,如果把這些對(duì)象進(jìn)行抽象的描述,就可以得出結(jié)論:這些“對(duì)象”屬于水果“類”,因?yàn)樗鼈冇邢嗤奶卣鳎ㄋ峄蛱?,水份多等)?理解面向?qū)ο蟮幕靖拍顚?duì)象和類類由按鈕類Button產(chǎn)生的Button1和Button2對(duì)象 簡單來說,類是一種類型(各種類型的控件就是一個(gè)個(gè)的“類”)。把工具箱的控件拖到窗體上時(shí),即產(chǎn)生該類控件的一個(gè)對(duì)象。面向?qū)ο蟪绦蛟O(shè)計(jì)的重要特征:繼承性 繼承性是指基于現(xiàn)有的類(稱為父類或基類)創(chuàng)建新類(稱為子類或派生類)的機(jī)制。封裝性 封裝是指將

4、對(duì)象的數(shù)據(jù)和操作包裝在一起,從而使對(duì)象具有包含和隱藏信息(如內(nèi)部數(shù)據(jù)和代碼)的能力。多態(tài)性 多態(tài)性是指類為方法提供不同的實(shí)現(xiàn)形式,但可以用相同名稱調(diào)用的功能。1、單擊”項(xiàng)目”菜單/添加類 2 、在”添加新項(xiàng)”對(duì)話框中選擇”類”3 、在”名稱”文本框中輸入類名4 、單擊”添加”按鈕 在應(yīng)用程序中添加類(創(chuàng)建類)聲明類(類的格式) Public Class 類名 字段、屬性、方法、事件等 End Class類的定義 字段(變量) 在類塊中聲明字段的方式如下: 訪問級(jí)別 字段名 As 數(shù)據(jù)類型 其中訪問級(jí)別有: Public Private Dim注:用Private或Dim關(guān)鍵字聲明的變量為私有字

5、段, 用Public關(guān)鍵字聲明的變量為公共字段字段、屬性定義的語法格式如下:Private 變量名 AS 數(shù)據(jù)類型Public | ReadOnly | WriteOnly Property 屬性名() AS 數(shù)據(jù)類型 Get Return 變量名 End Get Set (Byval Value AS 數(shù)據(jù)類型) 變量名 = Value End SetEnd Property 定義字段和屬性對(duì)于屬性而言,訪問修飾符省略的話默認(rèn)為Public方法是封裝在類內(nèi)部的完成特定操作的過程或函數(shù)。要?jiǎng)?chuàng)建方法,實(shí)際上就是在類中編寫若干個(gè)過程(Sub)或函數(shù)(Function)。格式如下:Public |

6、Friend | Private|Protected Sub 方法名()End Sub 訪問修飾符省略的話默認(rèn)為PublicPublic:表示具有公共訪問權(quán)限,訪問沒有任何限制Friend:友元訪問權(quán)限,可以從聲明上下文內(nèi)和同一程序中的任何位置訪問它們。Private:私有訪問權(quán)限,訪問限于類的內(nèi)部Protected:保護(hù)權(quán)限,訪問權(quán)限限于類的內(nèi)部或派生類中創(chuàng)建方法Public Class myrectangle Dim W As Integer Dim H AS Integer Public Property Width() As Integer Get Return W End Get S

7、et(Byval Value AS Integer) W = Value End Set End Property在應(yīng)用程序中創(chuàng)建類例子1 Public Property Height() As Integer Get Return H End Get Set(Byval Value AS Integer) H = Value End Set End Property Public Function Area() AS Integer Return W * H End FunctionEnd Class 創(chuàng)建一個(gè)“myrectangle”類(矩形類)。兩個(gè)字段W和H,以及對(duì)應(yīng)的兩個(gè)屬性Widt

8、h和Heigth。一個(gè)計(jì)算面積的方法Area()。類定義示例 例子2 定義一個(gè)Lion類,有hungry字段和Eat()方法。 Public Class Lion Private hungry As Boolean Public Sub Eat(str As String) MessageBox.Show(str) End SubEnd Class構(gòu)造函數(shù) 在創(chuàng)建對(duì)象時(shí)總要調(diào)用一個(gè)特定的方法,這個(gè)方法叫做構(gòu)造函數(shù)。構(gòu)造函數(shù)主要用來為對(duì)象分配內(nèi)存空間,完成初始化操作。 當(dāng)New 一個(gè)新的對(duì)象時(shí)系統(tǒng)就將自動(dòng)調(diào)用相應(yīng)的構(gòu)造函數(shù)(跟創(chuàng)建對(duì)象時(shí)類名后面的參數(shù)有關(guān))。構(gòu)造函數(shù)(續(xù)) 類中構(gòu)造函數(shù)的規(guī)定:構(gòu)

9、造函數(shù)是一個(gè)Sub通用過程,過程名為New當(dāng)某個(gè)類沒有定義構(gòu)造函數(shù)時(shí),系統(tǒng)將自動(dòng)為其創(chuàng)建無參數(shù)和無方法體的默認(rèn)構(gòu)造函數(shù)。構(gòu)造函數(shù)的訪問修飾符是Public構(gòu)造函數(shù)可以有參數(shù),也可以無參數(shù),可以有多個(gè)參數(shù)。在一個(gè)類中可以定義多個(gè)構(gòu)造函數(shù)構(gòu)造函數(shù)Public Class myrectangle Public Sub New() W = 3 H = 5 End Sub Public Sub New(Byval x as Integer,Byval y as Integer) W = x H = y End Sub End Class 在“myrectangle”類的基礎(chǔ)上,添加了二個(gè)構(gòu)造函數(shù),一個(gè)無

10、參數(shù),一個(gè)有兩個(gè)參數(shù)。構(gòu)造函數(shù)例子2在Lion類中定義兩個(gè)構(gòu)造函數(shù),一個(gè)函數(shù)無參數(shù), 另一個(gè)函數(shù)有一個(gè)String類型參數(shù)Public Class Lion Private hungry As Boolean Public Sub New() MessageBox.Show(“無參數(shù)”) End Sub Public Sub New(ByVal str As String) MessageBox.Show(“一個(gè)參數(shù)”) End Sub Public Sub Eat(ByVal str As String) MessageBox.Show(str) End SubEnd Class析構(gòu)函數(shù)1、

11、當(dāng)對(duì)象離開作用范圍或被賦值為Nothing時(shí),該對(duì)象的生命期結(jié)束。 VB.NET使用一個(gè)名為Finalize的Sub過程來釋放系統(tǒng)資源,這個(gè)過程稱為析構(gòu)函數(shù)。2、Finalize析構(gòu)器是一個(gè)受保護(hù)的過程,它被系統(tǒng)自動(dòng)調(diào)用,而且不能顯式地被調(diào)用。對(duì)象的創(chuàng)建 對(duì)象的創(chuàng)建和使用 類定義后,就可以創(chuàng)建類的實(shí)例(對(duì)象),創(chuàng)建類的實(shí)例需使用New關(guān)鍵字。類的實(shí)例就是對(duì)象。對(duì)象的創(chuàng)建和使用 創(chuàng)建對(duì)象語句的一般格式如下: 訪問級(jí)別 As 類名 = New 類名(參數(shù)) 訪問級(jí)別 As New 類名(參數(shù))訪問級(jí)別可以是Dim 、Private、Static、Shared等New關(guān)鍵字是調(diào)用構(gòu)造函數(shù)類完成對(duì)象的

12、初始化工作。將依據(jù)參數(shù)類調(diào)用相應(yīng)的構(gòu)造函數(shù)。對(duì)象的使用 創(chuàng)建對(duì)象之后,就可以在程序中使用這個(gè)對(duì)象: 對(duì)象調(diào)用類中的字段: 對(duì)象名.字段名 = 值 變量 = 對(duì)象名.字段名調(diào)用對(duì)象方法: 對(duì)象名.方法名(參數(shù))對(duì)象的創(chuàng)建和使用 在應(yīng)用程序中使用類在應(yīng)用程序中使用類Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim rec As New myrectangle New表示實(shí)例化rectangle,就是從rectangle類實(shí)例化

13、一個(gè)對(duì)象rec rec.Height = CInt(TextBox1.Text) rec.Width = CInt(TextBox2.Text) TextBox3.Text = rec.AreaEnd Sub思考:調(diào)用哪個(gè)構(gòu)造函數(shù)?類的繼承從一個(gè)已知的類創(chuàng)建新類的語句格式為:Public Class 新類名 Inherits ClassNameEnd Class其中,ClassName 是基類的名稱。注意:Inherits 語句必須是類定義語句中的第一條語句。類的繼承舉例Public Class Baseclass Public x AS Integer Public y As StringE

14、nd ClassPublic Class Childclass Inherits Baseclass Public Function Getstring() As String Return y End FunctionEnd Class類的繼承繼承的范圍當(dāng)通過繼承來創(chuàng)建一個(gè)子類時(shí):1、子類可以從基類中繼承所有的用Public和Friend關(guān)鍵字聲明的變量、屬性和方法。2、子類不能繼承在基類中用Private 關(guān)鍵字聲明的變量、屬性和方法,這些變量、屬性和方法只能在該基類中使用。3、在基類中使用Protected關(guān)鍵字聲明的變量和方法,可以被它的子類繼承即可以在子類中直接調(diào)用或使用,但對(duì)于任何

15、類外部的代碼將不能調(diào)用。4、繼承具有傳遞性。若類A有子類B,類B有子類C,則類C不僅繼承類類B,有繼承了類A的成員。一道題目小結(jié) 本章主要介紹了面向?qū)ο蟮幕靖拍?,面向?qū)ο笠猿橄蠛头庋b的方式將事物劃分成類,用對(duì)象實(shí)例化的操作來解決問題。類包括字段、屬性、方法和事件,過程從屬于類就成了方法。 面向?qū)ο蟮睦^承原則允許創(chuàng)建一個(gè)基類,然后從這個(gè)基類派生出更多的派生類,其中派生類能夠繼承基類的屬性和方法。1.填空題1)聲明為 Private 的一個(gè)類成員,只有定義這些成員的類的方法能夠訪問。2)關(guān)鍵字 Class 表示一個(gè)類的定義。習(xí)題2.判斷正誤并說明原因1)構(gòu)造函數(shù)可以返回值。習(xí)題(續(xù))3.編程題1

16、)使用構(gòu)造函數(shù)的方法來創(chuàng)建Data類,使該類的對(duì)象既可以接受一個(gè)String類型的數(shù)據(jù)初始化,也可以接受一個(gè)Integer類型的數(shù)據(jù)初始化。初始化時(shí)將輸入的內(nèi)容打印出來。習(xí)題(續(xù)) 在項(xiàng)目中創(chuàng)建一個(gè)DataBase類,定義OleDbConnection、OleDbTransaction、OleDbCommand對(duì)象。定義打開連接、關(guān)閉連接連接、返回?cái)?shù)據(jù)庫記錄、操作數(shù)據(jù)庫的方法。 在各個(gè)Form中操作數(shù)據(jù)庫的代碼都修改為通過DataBase類的方法來操作數(shù)據(jù)庫完成數(shù)據(jù)庫操作任務(wù)(實(shí)訓(xùn))課堂實(shí)訓(xùn)1(知識(shí)點(diǎn):創(chuàng)建類,字段,屬性,方法等) 新建一個(gè)項(xiàng)目,然后選擇項(xiàng)目|添加類命令,出現(xiàn)添加新項(xiàng)。在對(duì)話框

17、中的名稱中輸入“類”的名稱。 定義一個(gè)新類Person,定義私有(Private)的name, age字段;定義一個(gè)無參數(shù)的構(gòu)造函數(shù),再定義一個(gè)有兩個(gè)參數(shù)的構(gòu)造函數(shù),這兩個(gè)構(gòu)造函數(shù)都用來初始化name、age;最后定義兩個(gè)方法GetAge和GetName,分別用來得到age、name值課堂實(shí)訓(xùn)2 (知識(shí)點(diǎn):創(chuàng)建類的繼承) 在前面的基礎(chǔ)上,添加一個(gè)新類Student,繼承Person類;在Student類中添加字段score和相應(yīng)的構(gòu)造函數(shù),以及方法GetScore()來獲得score字段值。再在窗體上添加一個(gè)Button按鈕,當(dāng)單擊這個(gè)Button時(shí),調(diào)用 GetAge、GetName和get

18、Socer方法,在Text Box控件中顯示出得到的age、name和score值。以下內(nèi)容為選學(xué)內(nèi)容重載與重寫-重載多態(tài)性在面向?qū)ο蟪绦蛟O(shè)計(jì)中是非常重要的特性,在VB.NET中可以利用重載與重寫來實(shí)現(xiàn)多態(tài)性。1、重載(Overloading) 重載是在一個(gè)類中使用相同的名稱,但有不同的參數(shù)類型,創(chuàng)建一個(gè)以上的方法或?qū)傩浴?重載意味著可以在一個(gè)類中,多次聲明相同名字的方法或?qū)傩裕皇敲恳淮蔚穆暶?,都有不同的參?shù)列表。 在VB.NET中利用“Overloads”關(guān)鍵字,將類中的方法或?qū)傩月暶鳛橹剌d的類型。重載與重寫重載舉例:創(chuàng)建一個(gè)在數(shù)據(jù)庫中查找具有相同姓名、相同年齡或相同工資的人員的類。查找到

19、的滿足條件的記錄,存放在ArrayList結(jié)構(gòu)數(shù)組中。Public Class Search Public Overloads Function Getperson(ByVal Name As String ) As ArrayList End Function Public Overloads Function Getperson(ByVal Age As Integer ) As ArrayList End Function Public Overloads Function Getperson(ByVal Salary As Single ) As ArrayList End Funct

20、ionEnd Class重載與重寫- 重寫多態(tài)性在面向?qū)ο蟪绦蛟O(shè)計(jì)中是非常重要的特性,在VB.NET中可以利用重載與重寫來實(shí)現(xiàn)多態(tài)性。2、重寫(Overriding) 重寫就是在不影響基類的情況下,子類對(duì)從基類繼承的屬性和方法,可以進(jìn)行修改和擴(kuò)充。 在子類中重寫基類的屬性和方法時(shí),就會(huì)產(chǎn)生多態(tài)性。通過重寫,子類可以重復(fù)使用基類中相同的方法或?qū)傩悦Q,但各方法或?qū)傩灾?,所包含的代碼卻完全不同。重載與重寫-重寫當(dāng)通過繼承創(chuàng)建一個(gè)新類,并要重寫方法或?qū)傩詴r(shí),應(yīng)按如下步驟操作: 在基類中使用Overridable關(guān)鍵字聲明要重寫的方法和屬性。 在子類中,子類定義語句后的第1個(gè)語句應(yīng)是Inherits語句。 在子類中使用Overrides關(guān)鍵字來聲明重寫的方法和屬性。重載與重寫重寫舉例:基類Class1Public Class Class1 P

溫馨提示

  • 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)論