定义类

来源:互联网 发布:vue.js 视频教程 编辑:程序博客网 时间:2024/05/20 04:47
 
定义类包含属性列表(可选)、修饰符(可选)、单词class 和其后的类标识(类名),以及要继承的基类和接口列表(可选)。类声明后面是类体,包括代码和类成员,如方法和成员属性。
类定义的语法:
 
[attribute] [modifiers] class identifier [:baselist]
        { 
class body } [;]

 
就像和所有的.NET类型一样,类都继承于System.Object类。这个继承关系是隐式的,因此,不需要在类定义中专门指定。因为类只能显式的继承一个类。
 
 
属性
可选的属性(attribute)部分包括一对中括号,其中是一个或多个属性组成的列表,各属性之间以逗号分隔。
.net支持两种属性,一种是标准属性(custom attribute),一种是定制属性(standard attribute)定制属性由程序员定义,虽然是由编译器将属性增加到元数据中,但仍要由程序员编写反射代码将数据合并到程序中。标准属性是.NET框架的一部分,运行时系统和.NET编译器能够识别这些标准属性。
利用属性,可以扩展C#编译器生成的元数据,即增加有关一个类或类成员的定制描述信息。
 
访问修饰符
修饰符的主要作用是指定类型和类型成员的可访问性(也称做作用域或可见性)。以限制类和结构,以便只有声明它们的程序或命名空间才能使用它们。可以限制类成员,以便只有派生类才能使用它们,或者限制类成员,以便只有当前命名空间或程序中的类才能使用它们。
public:访问不受限制。
protected:访问仅限于包含类或从包含类派生的类型。
Internal:访问仅限于当前程序集。
protected internal:访问仅限于当前程序集或从包含类派生的类型。
private:访问仅限于包含类型。
 
基类至少要与其派生类有相同的可访问性。
 
Abstract、Sealed和Static修饰符
除了访问修饰符,C#还提供了十来个用于类型和类成员的其他修饰符。
abstract:指示该类只能用来作为其他类的基类。这意味着不能直接创建该类的实例。从该类派生的任何类都必须实现它的所有抽象方法和存取方法。虽然叫抽象类但它也可以有非抽象的方法和成员属性。
sealed:指定该类能不能被继承(用作基类)。注意,.NET不允许一个类同时为抽象类(abstract)和密封类(sealed)。
static:指定该类只包含静态成员。
 
 
类标识符
 
即类名,ECMA标准推荐标识符采用如下的命名原则:
  •    使用名词或短语。
  •    使用Pascal大小写风格。
  •    尽量不要使用缩写。
  •    不要使用诸如C这样的类型前缀来指示类。例如:类名应该使用:BinaryTree,而非CBinaryTree。
  •    不要使用下划线。
  •    根据约定,接口总是以I开头,因此不要使用I作为类名的第一个字符,除非,I确实是整个单词的第一个字母。
 
基类、接口和继承
 
这是一个可选的列表,其中包含以前定义的来或接口,新类可以继承这些类或接口的行为和能力。这里新类称为派生类,而它所继承的类或接口就称为基类(base class)。基类必须列在接口前面。
C#中不允许多重继承,因此,基类列表中只能包含一个类。由于对继承的接口数没有限制,所以就提升了接口在.NET中的应用地位。
  •    从基类继承称为实现继承(imolementation inheritance),派生类会继承基类的所有成员。但基类可以将某个成员修饰符定义为private,这就能禁止对该成员的访问。
  •    从接口继承称为接口继承(interface inheritance),这是因为接口并不提供实现代码。派生类必须提供适当的逻辑类实现接口中定义的所有函数。
原创粉丝点击