3.3 类和对象
类是对象的抽象和概括,是数据、属性和方法的封装。从某种角度来讲,类就像一个没有界面的控件,而对象是现实世界中的一个实体。
在面向对象编程技术中,类是主要的焦点。简单地说,类是一种提供功能的数据类型,对象是对类的实例化,非静态类需要通过实例化来引用类,而静态类可以直接使用。类和对象是面向对象编程的基础,学好类和对象会为深入面向对象编程打下坚实的基础。
3.3.1 类的定义
在VB.NET中定义一个类要使用关键字Class,如代码3-3所示。
代码3-3定义一个类
Class Employee End Class
这是一个非常简单的类。微软推荐使用Pascal语言对类的命名规则,这就意味着类名的第一个字母必须是大写,并且后来的并发连接词的第一个字母均为大写。一个好的类名应该类似于GeneralManager,SmallDictionary,StringUtil。
3.3.2 对象
对象的特征有:有一个名字以区别其他对象;有一个状态用来描述默认特征;有一组操作,每一个操作决定对象的一种功能或行为。对象的操作可分为两类,一类是自身承受的操作,另一类是加于其他对象的操作,是其自身所具有的状态特征及可以对这些状态施加的操作结合在一起所构成的独立实体。
在面向对象编程中,对象被称为类的实例,因此创建一个对象的过程又被称为实例化。VB.NET中使用New关键字实例化一个类。示例如代码3-4所示,其先定义了一个Employee类,在使用该类及其中的方法时用New关键字实例化Employee类。
代码3-4对象初始化
01. Module Module1
02. Class Employee
03. Dim salary As Decimal = 40000
04. Dim yearlyBonus As Decimal = 4000
05. Public Sub PrintSalary()
06. ' print the salary to the Console
07. System.Console.Write(salary)
08. End Sub
09. End Class
10. Public Sub Main()
11. Dim anEmployee As Employee
12. anEmployee = New Employee()
13. anEmployee.PrintSalary() 14. End Sub 15. End Module
代码3-4执行步骤如下:
① 第11行和第12行代码实例化类Emplopee,定义一个该类的实例anEmplopee;
② 第13行代码调用该实例的PrintSalary方法;
③ 执行第7行代码,输出变量salary的值。
代码3-4中的模块Module1中提供了Main函数,在VB.NET程序中Main函数是整个程序的入口,要编译源程序,就必须提供访问Main Sub的途径。
在Main函数中声明了Employee类的对象变量,这个变量名为anEmployee。代码如下:
Dim anEmployee As Employee
初始化anEmployee时必须使用关键字New。代码如下:
anEmployee = New Employee()
有了Employee的对象anEmplopee,就可以使用它的功能,代码3-4中调用了PrintSalary方法。代码如下:
anEmployee.PrintSalary()
也可以把Main函数放在类中,采用这种方法就不需要使用模块,如代码3-5所示。
代码3-5将Main函数放在类中
Class Employee
Dim salary As Decimal = 40000
Dim yearlyBonus As Decimal = 4000
Public Sub PrintSalary()
' print the salary to the Console
System.Console.Write(salary)
End Sub
Public Shared Sub Main()
Dim anemployee As Employee
anemployee = New Employee()
anemployee.PrintSalary()
End Sub
End Class
下面以实例说明类的实例化。