本课讨论的是类成员的作用域,也就是类成员的访问级别,前面的示例中,我们已经看到两种访问级别,即私有的(private)和公共的(public),本课将对常用的访问级别做一些总结和说明。

首先讨论private访问级别,顾名思义,此类成员只能在类的内部使用,一般来讲,会使用私有的字段或属性保存内部数据,使用私有方法进行辅助操作;当然,类的其他类型成员也可以根据选择是否定义为只能内部访问。

public访问级别就大方多了,此类成员可以通过类或实例访问,可以在类的外部进行调用,一般来讲,类的主要数据和操作应该定义为public访问级别,为类的使用者提供数据及其操作接口。

另一个常用的访问级别是受保护的(protected),此类成员只允许在本类或其子类中访问。此类成员在类的继承结构中非常有用,定义为protected级别的成员,可以在类与子类的内部传递数据,有效避免了private和public两种访问级别的不足,比如,需要在子类中使用的数据,在父类中定义为private是不行的,但定义为public访问级别又可能将不需要公开的数据和操作暴露了。在“继承”一课时,我们会看到protected访问级别的具体应用。

还一个访问修饰符是internal关键字,称为内部访问级别,这类成员与public访问级别类似,但只能在其定义的程序集(assembly)内使用。

除了独立使用这些,还可以将protected和internal组合使用,定义的成员只能被本类或本程序集内的子类访问。

如果定义类的成员时没有指定访问修饰符,则默认为private级别,只能在其定义的范围内使用。不只是类的成员,在后续内容的各类语句结构中,同样遵循这一原则,即,在某一语句块定义的变量、对象等只能在其定义的语句块中使用,应注意避免同名变量或对象的冲突问题,特别在嵌套结构或数据传递过程中更需要重视访问级别问题。

本课,大家需要理解访问修饰符private、public、protected和internal的含义,以及语句块访问级别的概念,它接近于语句块私有成员的概念。

CHY软件小屋原创作品!