|
类是C#语言实现面向对象程序设计的基础,它是C#封装的基本单元,类把对象、属性和方法这些类成员封装在一起构成一个有机整体,即数据结构。当类的成员定义为保护或私有(protected或private)时,外部不能访问;定义为公有(public)时,则任何用户均可访问。
|
|
|
|
在C#中用关键字class来定义类,其基本格式为:
|
|
|
|
类是由数据成员和函数成员组成,它们分别是面向对象理论中类的属性和方法。类的数据成员包含类的常量成员和类的变量成员,它们可以是前面介绍的任何数据类型的变量,甚至可以是其他类。
|
|
|
类成员的访问权限用来限制外界对某一个类成员的访问。类成员的访问权限有以下几种:
|
|
|
|
.private:不允许外界访问,也不允许派生类访问,只能在定义该成员的类中调用。
|
|
|
.protected:只允许在定义该成员的类或其派生类的内部被调用。
|
|
|
.internal:使用该声明符的类型或成员只允许在同一程序集内访问。
|
|
|
|
|
|
|
|
定义(构造)一个Point类的对象StringPoint,并为该对象分配存储空间。
|
|
|
|
类数据成员在C#中用来描述一个类的特征,即面向对象理论中类的属性。C#中有两类数据成员,一类是常量成员,另一类是变量成员。
|
|
|
在某个类中定义的常量就是这个类的常量成员,这个类的所有其他成员都可以使用这个常量来代表某个值。
|
|
|
|
|
在应用中,一般将变量成员分为两类,静态变量成员(带static修饰符定义的变量)和非静态变量成员(又称为实例变量成员,即定义时不带static修饰的)。
|
|
|
|
方法是指类中用于对数据进行某种处理操作的算法,它就是实现某种功能的程序代码模块,在C/C++中称作函数,在面向对象编程技术中,将函数称为方法。在方法中,代码必须是结构化的。方法是访问、使用私有成员变量的途径。在C#中,方法与它操作的对象封装在一起构成类,所以方法是类的成员。在一个类中定义成员方法的格式为:
|
|
|
|
|
在程序中调用方法都是通过方法名来实现的,如果对于具有相同功能而参数不同的方法取不同的方法名,不但会降低程序员编写程序的效率,也降低了程序的可读性。
|
|
|
例如,以下是一些执行打印不同数据类型数据的打印方法,各种方法取不同的方法名。
|
|
|
|
以上3个方法都是执行打印功能,但却使用了3个不同的方法名,给编写、阅读和调用程序都带来了不便,如能使用同一个方法名,则会方便得多。在C#语言中,可以在同一个类的内部定义多个名字相同而参数表不同的方法,这就是所谓的方法重载。换个说法,实现用同名的方法对不同类型的数据做不同的运算,就称为方法重载。
|
|
|
使用方法重载技术后,上述3个打印的方法可以如下定义:
|
|
|
|
对于重载的方法,C#是通过方法中的参数匹配来决定调用哪个方法。所以调用方法时的参数类型、属性和个数一定要与类中将要被调用的方法的参数列表对应,这样才能实现正确调用。
|
|
|