当前位置:编程学习 > VB >>

VB.NET中的面向对象编程特征(2)

 

 

Private:秘密的类成员只能被该类内部的其他成员访问。使用Private关健字就可以使一个类成员成为秘密的。

Protected:被保护的类成员只能被该类的派生类和该类本身内部进行访问。使用Protected关健字就可以使类成员成为被保护的类成员。

Friend:具有friend级访问限制的类成员只能在定义该类的程序内部使用,使用Friend关健字就能使类成员具有friend级访问限制。

Protected friend:这是protected和friend二种访问类型的组合。这些不同的访问类型使面向对象编程具有了信息隐慝能力。也就是说,我们可以使用这些访问类型保护不愿意让别人访问的信息。

静态成员

我们再来看看表4、5、6中的Employee类,也许读者会对我们没有将System.Console类实例化就使用它的Write有点不理解,为什么我们可以这样做呢?因为在面向对象编程语言中,有一种被称作静态成员的特殊的类成员,VB.NET也有静态成员这一概念。

无需对一个对象实例化就可以使用其中的静态成员。例如,下面的表7中,SalaryLevel类中就只包含有静态的域:

类中的表态成员

Class SalaryLevel

Public Shared Level1 As Decimal = 35000

Public Shared Level2 As Decimal = 40000

Public Shared Level3 As Decimal = 45000

Public Shared Level4 As Decimal = 50000

Public Shared Level5 As Decimal = 55000

Public Shared Level6 As Decimal = 60000

Public Shared Level7 As Decimal = 65000

Public Shared Level8 As Decimal = 70000

Public Shared Level9 As Decimal = 75000

Public Shared Level10 As Decimal = 80000

End Class

 

 

我们可以象表8中的程序所演示的那样在程序中使用类:

Listing 8: Using a static member of a class

 

Imports System

 

Class SalaryLevel

Public Shared Level1 As Decimal = 35000

Public Shared Level2 As Decimal = 40000

Public Shared Level3 As Decimal = 45000

Public Shared Level4 As Decimal = 50000

Public Shared Level5 As Decimal = 55000

Public Shared Level6 As Decimal = 60000

Public Shared Level7 As Decimal = 65000

Public Shared Level8 As Decimal = 70000

Public Shared Level9 As Decimal = 75000

Public Shared Level10 As Decimal = 80000

End Class

 

Class Employee

 

Dim yearlyBonus As Decimal = 4000

 

Public Sub PrintSalary()

使用SalaryLevel类的静态域向Console输出工资额

Console.Write(SalaryLevel.Level4)

End Sub

 

Public Shared Sub Main()

Dim employee As Employee

employee = New Employee()

employee.PrintSalary()

End Sub

 

End Class

 

 

在Employee类的PrintSalary方法中,我们可以在不首先创建SalaryLevel类变量的情况下使用其中的静态域Level4。不属于静态成员的类成员被称作实例成员。

 

构造器

A 构造器是类初始化所必须使用的特殊方法,在VB.NET中,这一方法被称作New。但我们在前面的代码中可以发现,在类中我们没有定义New这个方法。正是这样,如果类中没有定义构造器,VB.NET将自动地创建一个构造器,当使用关健字New对对象进行初始化时,也就调用了类的构造器。当然,我们也可以自己编写对象在初始化时所运行的代码。

如果我们在程序中创建了构造器,VB.NET就不会再自动为该类创建构造器了。

 

继承

继承是扩展类的一种特性。如果需要完成一些功能,当然可以创建一个新类,但如果别人所创建的类可以提供一部分你所需要的功能,就可以创建一个扩充了原有类的新类,我们创建的类可以称为子类或派生类,原来的类可以被称为基础类或父类。有时,子类和继承也用于描述对类的扩充。在VB.NET中,一个类只能继承一个父类,多类继承在VB.NET中是不允许的。

从语法上说,在类名后加一个冒号,后面再加上关健字Inherits和父类的名字就可以完成对类的继承。例如,下面表9中的代码就通过扩充Employee类创建了一个被称为Manager的新类:

扩充类

Imports System

 

Class Employee

 

Dim salary As Decimal = 40000

Dim yearlyBonus As Decimal = 4000

 

Public Sub PrintSalary()

print the salary to the Console

Console.Write(salary)

补充:软件开发 , Vb ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,