类
类,C#编程中最为重要的概念,是面向对象编程的灵魂。
类的概念,在我们的生活中比比皆是。物以类聚、人以群分,把玩具归归类,把资料归归类,如此等等。由此可见,凡有一定共同特性的东西,就可以归为一类。
写程序也一样,类用于描述需要编程处理的任何事物,不论这些事物是实体的、还是概念上的,只要总结、概括出这些事物共同的特征和行为,就可以用类来描述它们。
在以前的章节中,我们曾经接触过类,不过没有进行深入的学习与探讨。还记得一起学C#(九)中我们曾经写过一个叫做Vector的类吗?还有一起学C#(七)中使用过的C#提供的Random类?
Vector和Random各自成为一个类,是因为它们各自描述了一类事物。Vector描述了具有一个整数的向量,Random则描述了随机数序列。其实,因为是举例子,Vector只是一个非常非常简化的类,还不能当做一个真正的类来看待,Random才是一个货真价实的类。
怎样设计一个货真价实的类呢?首先要找出事物的共同特征和行为。
一件事或一个物,会具备非常多的特征和行为,我们通常只使用与编程目标相关的那些特征和行为,而过滤掉不相关的部分。换个说法,我们用类描述事物的哪些特征和行为,是根据编程目标来进行取舍的。同样的事物,对于不同的编程目标,设计出来的类可能不一样。
比如一个企业,雇佣了很多很多的人为它工作,这些人都是这个企业的员工。我们可以设计一个员工类,用来描述这些为这个企业工作的人们。
class Employeer
{
}
class是关键字,后面的Employeer是类名,这样我们就定义了一个员工类。
员工有很多的属性,最基本的属性一般有姓名、年龄、性别等。我们可以把这些属性添加到类里面:
class Employeer
{
string Name; // 姓名
ushort Age; // 年龄
bool Sex; // 性别
}
除此之外,员工还有其它近乎无穷多的属性,比如工号、所在单位、职务、职称、学历、薪水...,甚至于身高、体重、体检的各项指标等等。
这些众多的属性,就要依照我们的编程目标进行取舍了,如果要写一个人资管理方面的程序,一般会使用工号、所在单位 、职务等等与人资管理相关的属性。如果要写一个员工健康管理的程序,当然要包括身高、体重等等与健康相关的属性了。
所谓兵无定式、水无常形,编程其实也一样,每个程序员对工作目标的实现都有各自不同的理解,采用的方式、方法也会千差万别,但是优秀的程序员们总是能殊途同归,出色地完成编程项目。