新聞中心
在開發(fā)領(lǐng)域,已經(jīng)出現(xiàn)了許多種開發(fā)語言供編程人員隨自己的需求進(jìn)行選擇應(yīng)用。比如VB.NET語言就可以對有特定需求的開發(fā)人員進(jìn)行一定的幫助。VB.NET構(gòu)造函數(shù)進(jìn)行處理的時(shí)侯,有兩個(gè)陳述值得注意: #t#

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括寧武網(wǎng)站建設(shè)、寧武網(wǎng)站制作、寧武網(wǎng)頁制作以及寧武網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,寧武網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到寧武省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
(1) 如果類型不包含任何實(shí)例構(gòu)造函數(shù)聲明,則VB.NET提供默認(rèn)的構(gòu)造函數(shù);
默認(rèn)參數(shù)調(diào)用直接基類的無參數(shù)構(gòu)造函數(shù)。如果基類沒有可訪問的無參數(shù)構(gòu)造函數(shù),則發(fā)生編譯期錯(cuò)誤。
(2) 構(gòu)造函數(shù)不能繼承;
陳述(1)包含兩個(gè)方面的信息:
①是如果類型不包含任何實(shí)例構(gòu)造函數(shù)聲明,則VB.NET提供默認(rèn)的構(gòu)造函數(shù),即下面的聲明是允許的,在類Shape中我們沒有顯式聲明任何構(gòu)造函數(shù),但是我們?nèi)匀豢梢酝ㄟ^VB.NET自動(dòng)提供的無參數(shù)構(gòu)造函數(shù)New()來實(shí)例化類;
- Module TestModule Test
- Public Sub Main()Sub Main()
- Dim shape1 As Shape = New Shape
- End Sub
- End Module
- Public Class ShapeClass Shape
- Public Sub Draw()Sub Draw()
- 'some codes here.
- End Sub
- End Class
②是如果類型中包含有實(shí)例構(gòu)造函數(shù)的聲明,那么VB.NET不再提供默認(rèn)的構(gòu)造函數(shù),例如,我們在類Shape中添加了一個(gè)帶參數(shù)的構(gòu)造函數(shù),
- Public Class ShapeClass Shape
- Private _pt As Point
- Public Sub New()Sub New(p As Point)
- _pt = p
- End Sub
- Public Sub Draw()Sub Draw()
- 'some codes here.
- End Sub
- End Class
那么,如果直接實(shí)例化類時(shí),則會(huì)產(chǎn)生錯(cuò)誤;
Dim shape1 As Shape = New Shape
只能通過調(diào)用Shape類中顯式聲明的帶參數(shù)的構(gòu)造函數(shù)來實(shí)例化類,如下,
Dim shape1 As Shape = New Shape(New Point(0, 0))
因此,如果要在類中同時(shí)使用無參數(shù)和帶參數(shù)的構(gòu)造函數(shù),必須同時(shí)顯式地聲明兩種構(gòu)造函數(shù)。
- Public Class ShapeClass Shape
- Private _pt As Point
- Public Sub New()Sub New()
- 'some codes here.
- End Sub
- Public Sub New()Sub New(p As Point)
- _pt = p
- End Sub
- Public Sub Draw()Sub Draw()
- 'some codes here.
- End Sub
- End Class
陳述(2),構(gòu)造函數(shù)不能繼承,即,如果要使子類與基類有相同的構(gòu)造函數(shù),那么必須在每個(gè)子類中都顯式的聲明與基類構(gòu)造相同的構(gòu)造函數(shù),例如:
- Public MustInherit Class
ShapeClass Shape- Private _pt As Point
- Public Sub New()Sub New()
- 'some codes here.
- End Sub
- Public Sub New()Sub New(p As Point)
- _pt = p
- End Sub
- Public MustOverride Sub Draw()Sub Draw()
- End Class
- Public Class LineClass Line
- Inherits Shape
- Public Sub New()Sub New()
- End Sub
- Public Sub New()Sub New(p As Point)
- MyBase.New(p)
- End Sub
- Public Overrides Sub Draw()Sub Draw()
- 'some codes here.
- End Sub
- End Class
這一點(diǎn)非常重要而且也很有意義。因?yàn)槲覀兺鶅A向于認(rèn)為子類繼承了基類所有的屬性和方法,這往往導(dǎo)致我們的程序出現(xiàn)編譯錯(cuò)誤。
綜合以上兩個(gè)陳述,在實(shí)際編程中應(yīng)遵循一個(gè)原則:在類中,無論是基類還是子類,顯式地聲明所有需要的無參數(shù)或帶參數(shù)構(gòu)造函數(shù)。遵循這個(gè)原則,既有利于提高編譯正確代碼的速度,也有利于自己和其他程序員理解代碼。
當(dāng)前題目:VB.NET構(gòu)造函數(shù)實(shí)際處理方式簡介
文章出自:http://www.5511xx.com/article/ccccodd.html


咨詢
建站咨詢
