| 
         
     
     | 
     | 
    
  
    | 
    浅谈VB中面向对象技术的封装性 | 
   
  
     | 
   
  
     | 
   
  
    | 
     作者:未知  来源:月光软件站  加入时间:2005-2-28 月光软件站  | 
   
  
    摘要:VB是门面向对象程序设计的语言,该语言有四个主要的特征:抽象、    封装、继承、多态。本文主要针对封装性做就实例性的阐述。
  操作系统: Windows 2000 Advanced Server  编程工具: Visual Basic 6.0 
  这里我们将通过一个具体的实例来认识它的封装性! 在面向对象方法 中,对象可看成是属性(数据)以及这些属性上的专用操作的封装体。 封装是一种信息屏蔽技术,封装的目的是使对象的定义和实现分离。   
  Step1:   1.1新建一个工程命名为VBOOP;   1.2单击工程菜单,选择添加类模块后并单击确定按钮;   1.3在其属性窗口中将类的名称改为TScore。
  Step2:编辑TScore类模块代码
    2.1.这里为TScore类定义四个私有(Private)变量,它们只能在本模块     中是可见的,即类的一些成员被隐藏起来,用户只能通过属性过程     或函数等方法来访问,从而对对象进行封装。
      定义变量的基本语法:     Private/Publc <变量名> As <变量类型>
      代码部分:     Private FName As String  '学生的姓名     Private FMath As Single  '数学成绩     Private FEnglish As Single '英语成绩
    2.2.为TScore类定义六个公用(Public)的属性(Property)过程和一     个计算总分的方法函数。
      定义方法的基本语法:     Private/Publc Property Get <读属性过程名> As <属性返回值类型>;     Private/Public Property Let <写属性过程名>(ByVal 变量名 As 返回值类型);     Private/Publc Function <函数名> As <函数返回值类型>;     get: 将模块中的私有变量的值赋给属性过程,通常称为读;     Let: 通过属性过程给模块中的私有变量值赋,通常称为写。
      代码部分:     Public Property Get GetName() As String             GetName = FName        End Property     Public Property Let SetName(ByVal Name As String)        FName = Name         End Property     Public Property Get GetMath() As Single       GetMath = FMath     End Property     Public Property Let SetMath(ByVal Math As Single)       FMath = Math     End Property     Public Property Get GetEnglish() As Single       GetEnglish = FEnglish     End Property     Public Property Let SetEnglish(ByVal English As Single)       FEnglish = English     End Property     Public Function Total() As Single   '计算总成绩函数              Total = GetMath + GetEnglish     End Function
  Step3:回到Form1窗口,在窗口上添加12个控件:       3.1添加5个文本框txtName、txtMath、txtEN、txtTotal;        3.2添加5个标签labName、labMath、labEN、labTotal     其Caption属性分别为姓名、数学、英语、总成绩;
    3.3添加2个命令按钮ComSetValues、ComSearch     其Caption属性分别为赋值、查询。      Step4:编辑窗口事件
    4.1.构造Score对象及查询关键字SearchKey。在面向对象方法     中,我们可以这样说定义类就是定义数据类型,而声明对     象就是声明变量。也就是说,对象实际上就是变量。           Dim Score As New TScore     Dim SearchKey As String
    4.2.给模块中四个私有变量赋值的单击事件     Private Sub ComSetValues_Click()     If Val(txtMath.Text) >= 0 And Val(txtMath.Text) <= 100       And Val(txtEN.Text) >= 0 And Val(txtEN.Text) <= 100      Then       With Score         .SetName = txtName.Text         .SetMath = Val(txtMath.Text)         .SetEnglish = Val(txtEN.Text)       End With       txtName.Text = ""       txtMath.Text = ""       txtEN.Text = ""       Print "姓名:" & Score.GetName & "数学:" & Score.GetMath & "英语:" & Score.GetEnglish     Else       MsgBox "成绩的取值范围:[0,100]", 64, "提示"     End If     End Sub
    4.3.查询各科成绩及总分的单击事件     Private Sub ComSearch_Click()     SearchKey = InputBox("请输入您要查询的姓名关键字:", "查询")     If word = Score.GetName Then       txtTotal.Text = Score.Total       txtName.Text = Score.GetName       txtMath.Text = Score.GetMath       txtEN.Text = Score.GetEnglish       txtTotal.Visible = True       labTotal.Visible = True     Else       MsgBox "抱歉!无此记录!", 64, "提示"     End If     End Sub
    4.4.窗口载入事件     Private Sub Form_Load()       txtTotal.Visible = False       labTotal.Visible = False     End Sub
    4.5窗口关闭事件,在这里我们将释放对象变量,否则将会发生存储器泄露     Private Sub Form_Unload(Cancel As Integer)       Set Score = Nothing     End Sub
  Step5:到这里,程序就全部写好了,您只要按F5程序就可以运行了。
  
 
  | 
   
  
     | 
   
  
     相关文章:相关软件:  | 
   
   
      |