跳至内容

Visual Basic .NET/类

来自维基教科书,自由的教科书

类概念是面向对象编程的主要基础。在一个图形用户界面和更复杂程序的世界中,类已经成为编程中非常重要的部分。

要创建一个类,在解决方案资源管理器中,右键单击应用程序,选择添加,然后选择。或者从菜单栏的项目菜单中选择“添加类...”。

对象: 具有自身属性和方法的单元,供用户自行使用。

封装: 允许类用户控制类的数据和操作,这些数据和操作可以从其他类中看到。

属性: 表示与实例关联的数据值。

方法: 类可以执行的操作。

构造函数: 当类的对象被实例化时调用的方法。

字段: 类级别的变量。

字段是在类内部但不在函数、子例程和属性内部的变量。这些变量也不允许在类外部调用。声明这些变量很简单,如本类段所示

Public Class customer
   Private Name As String
   Private Address As String
   Private Age As Integer
   ...

类可以通过 "Me" 调用轻松调用这些变量。请查看本类段以了解如何操作

...
Public Function GetName()
   Return Me.Name
End Function
...

尝试在类外部调用私有字段将不起作用。

构造函数

[编辑 | 编辑源代码]

当声明类的新的对象时,我们可以初始化类的字段。例如,请查看本类段

Public Class customer
   Public Name As String
   Private Address As String
   Private Id_number As String
   ' Constructor with parameters
   Public Sub New(ByVal name As String)
      Me.Name = name
   End Sub
   ' Constructor with no parameters
   Public Sub New()
   End Sub
   ...

从技术上讲,没有参数的构造函数称为空构造函数或默认构造函数。具有参数的构造函数称为自定义构造函数。

属性分为两类:获取器和设置器。获取器从类返回一个值,就像函数的工作原理一样,而设置器将一个值设置到类中。

  Public Property name() As String
    Get
        Return Me.Name
    End Get
    Set(ByVal value As String)
        Me.Name = value
    End Set
  End Property

因为这个类属性是 "Public",所以我们可以在类外部访问它。如果它是 "Private",则正好相反。

方法基本上是特定于类的子例程。这些可以根据程序员的意愿调用任意次数。

实例化

[编辑 | 编辑源代码]

我们使用关键字 "New"

  Dim customer1 = New customer("John Doe")
  MsgBox(customer1.name)

示例类

[编辑 | 编辑源代码]

这仅仅是使用以上所有技术的类示例

Public Class customer
   ' Fields
   Private Name As String
   Private Address As String
   Private Age As Integer
   Private Items_Bought As Integer
   ' Constructor with a parameter
   Public Sub New(ByVal value As String)
      Me.Name = value
   End Sub
   ' Default Constructor
   Public Sub New()
   End Sub
   ' Name Properties
   Public Property name() As String
      Get
         Return Me.Name
      End Get
      Set(ByVal value As String)
         Me.Name = value
      End Set
   End Property
   ' Address Properties
   Public Property Address() As String
      Get
         Return Me.Address
      End Get
      Set(ByVal value As String)
         Me.Address = value
      End Set
   End Property
   ' Age Properties
   Public Property Age() As Integer
      Get
         Return Me.Age
      End Get
      Set(ByVal value As String)
         Me.Age = value
      End Set
   End Property
   ' Items_Bought Properties
   Public Property Items_Bought() As Integer
      Get
         Return Me.Items_Bought
      End Get
      Set(ByVal value As String)
         Me.Items_Bought = value
      End Set
   End Property
End Class
华夏公益教科书