一. 类的定义(class)
在 C# 语言中创建的任何项目都有类的存在,通过类能很好地体现面向对象语言中封装、继承、多态的特性。
类定义的具体语法形式如下。
类的访问修饰符 修饰符 类名其中:
类的访问修饰符:用于设定对类的访问限制,包括 public、internal 或者不写,用 internal 或者不写时代表只能在当前项目中访问类;public 则代表可以在任何项目中访问类。
修饰符:修饰符是对类本身特点的描述,包括 abstract、sealed 和 static。abstract 是抽象的意思,使用它修饰符的类不能被实例化;sealed 修饰的类是密封类,不能 被继承;static 修饰的类是静态类,不能被实例化。
类名:类名用于描述类的功能,因此在定义类名时最好是具有实际意义,这样方便用户理解类中描述的内容。在同一个命名空间下类名必须是唯一的。类的成员:在类中能定义的元素,主要包括字段、属性、方法。
二. 访问修饰符
1、成员的访问修饰符
类中的成员包括字段、属性、方法。每个类成员在定义时需要指定访问修饰符、修饰符。类的访问修饰符主要有两个,即 internal 和 public,如果省略了访问修饰符,即为 internal。类中成员的访问修饰符有 4 个,具体用法如下。
(1) public成员可以被任何代码访问。
(2) private成员仅能被同一个类中的代码访问,如果在类成员前未使用任何访问修饰 符,则默认为private。
(3) internal成员仅能被同一个项目中的代码访问。
(4) protected成员只能由类或派生类中的代码访问。派生类是在继承中涉及的,将在后面详细介绍。
2、成员的修饰符
在修饰字段时通常用两个修饰符,即readonly (只读)、static (静态的)和const (常量),三者不能修饰同一个成员。
使用 readonly 修饰字段意味着只能读取该字段的值而不能给字段赋值。
使用 static 修饰的字段是静态字段,可以直接通过类名访问该字段。
3、成员的默认值
字段在类中定义完成后,在类加载时,会自动为字段赋值,不同数据类型的字段默认值不同, 如下表所示。

三. C#中的方法
1、方法的定义
定义方法的语法形式如下:
访问修饰符 修饰符 返回值类型 方法名(参数列表)
{
语句块;
}其中:
(1) 访问修饰符所有类成员访问修饰符都可以使用,如果省略访问修饰符,默认是 private。
(2) 修饰符在定义方法时修饰符包括 virtual(虚拟的)、abstract(抽象的)、override(重写的)、static(静态的)、sealed(密封的)。override 是在类之间继承时使用的。
(3) 返回值类型用于在调用方法后得到返回结果,返回值可以是任意的数据类型,如果指定了返回值类型,必须使用 return 关键字返回一个与之类型匹配的值。如果没有指定返回值类型,必须使用 void 关键字表示没有返回值。
(4) 方法名对方法所实现功能的描述。方法名的命名是以 Pascal 命名法为规范的。
(5)参数列表在方法中允许有 0 到多个参数,如果没有指定参数也要保留参数列表的小括号。参数的定义形式是“数据类型参数名”,如果使用多个参数,多个参数之间需要用逗号隔开。
2、get和set访问器
属性经常与字段连用,并提供了 get 访问器和 set 访问器,分别用于获取或设置字段的值。get 访问器和 set 访问器的使用与方法非常类似,可以在操作字段时根据一些规则和条件来设置或获取字段的值。此外,为了保证字段的安全性,还能选择省去 get 访问器或 set 访问器。
定义属性的语法形式如下。
public 数据类型 属性名
{
get
{
获取属性的语句块;
return 值;
)
set
{
设置属性得到语句块;
}
}
3、构造方法
创建类的对象是使用“类名 对象名 = new 类名()”的方式来实现的。实际上,“类名()”的形式调用的是类的构造方法,也就是说构造方法的名字是与类的名称相同的。构造方法的定义语法形式如下:
访问修饰符 类名 (参数列表)
{
语句块;
}这里构造方法的访问修饰符通常是public类型的,这样在其他类中都可以创建该类的对象。如果将访问修饰符设置成private类型的,则无法创建该类的对象。构造方法中的参数与其他方法一样,都是 0 到多个参数。
构造函数的作用:完成类的初始化工作。
4、方法的重载
概念:在同一个作用域内,可以声明几个功能类似的同名函数。调用时根据不同的实参列表选择相应的函数。
重载的特点:函数名相同,参数列表不同。
参数列表不同主要体现在参数个数或参数的数据类型不同。在调用重载的方法时系统是根据所传 递参数的不同判断调用的是哪个方法。