• 您的位置我爱Aspx >> VB.Net >> VB.Net中文教程(12) 共享成员(Shared Member)
  • VB.Net中文教程(12) 共享成员(Shared Member)

  • 作者:aspxer  来源:internet  日期:2007-5-20 14:00:03  关键字:.net
  • Dim e1 As New Employee("Tom")

    Dim e2 As New Employee("Lily", 20000)

    e1.salary = e2.salary + 5000

    e1.Display()

    e2.Display()

    End Sub

    End Class

    此程序输出如下﹕

    Name:Tom Salary:25000

    Name:Lily Salary:20000

    这宣告salary为public变量﹐让main()能直接使用salary变量。指令:

    e1.salary = e2.salary + 5000

    把对象e2之salary值加上5000﹐然后存入e1之salary变量中。此程序﹐重复定义了建构者程序── New()﹐宣告对象e1及e2时﹐就有两种选择﹕只输入姓名﹐或同时输入姓名及薪资额。请注意一项缺点﹕把salary宣告为Public变量﹐让Form1_Click()可使用salary变量名称﹐直接把资料存入对象中。若其它程序也依样画葫芦﹐任意把值存入salary中﹐那么salary值可能无意中遭破坏了。

    如果salary资料并非机密﹐尚无所谓。如果salary含有极重要资料﹐就得谨慎小心了。就像一颗炸弹(Employee类别)内的炸药(salary资料)可能无意中因外面因素(温度升高等)而引起变化导致爆炸﹐就危险了。

    图2、类别之保护功能

    因之﹐为让对象之间互相传递资料而把资料成员宣告为Public变量并不甚妥当。希望能像炸弹一样﹐只能经由信管(程序成员)使内部的炸药(salary)起化学作用。于是﹐宣告salary为Private变量﹐把它封藏在Employee的保护之中才安全。类别(及对象)之用途和手表、灯泡、蜗牛的外壳是一样的──保护内部之资料﹐只限特定之管道才能存取资料。然而一旦把salary藏入Employee壳中﹐上述程序就出问题了﹐如下﹕

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:VB.Net中文教程(11) Prototype样式
    下一篇:VB.Net中文教程(13) Whole-Part关系