定义类
来源:互联网 发布:vue.js 视频教程 编辑:程序博客网 时间:2024/05/20 04:47
定义类包含属性列表(可选)、修饰符(可选)、单词class 和其后的类标识(类名),以及要继承的基类和接口列表(可选)。类声明后面是类体,包括代码和类成员,如方法和成员属性。
类定义的语法:
[attribute] [modifiers] class identifier [:baselist]
{ class body } [;]
{ 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),这是因为接口并不提供实现代码。派生类必须提供适当的逻辑类实现接口中定义的所有函数。
- 定义类
- 定义类
- 定义类
- 定义类
- 定义类
- 定义类
- 定义类
- Javascript定义类:Javascript定义类
- 类的定义和对象的定义
- java 方法的定义 类的定义
- 自己定义窗口类
- CDATETIME时间类定义
- GPS类处理定义
- 类的定义
- 1C++类定义
- C#中的类定义
- 定义类成员
- 类定义(Excel)
- 世界编程语言排行榜08年01月_VB 语言
- CreateThread和_beginthread的区别
- const用法小结(转)
- 世界编程语言排行榜08年01月_PHP 语言
- 关于项目管理的知识点
- 定义类
- 最初级的堆栈溢出分析问题
- TestCompelte与QTP在Web测试方面的比较
- 电脑系统常见进程-进程管理
- 类的成员概述
- Problem 1733 Common Subsequence(公共子序列)
- Struts 的工作流程
- 常量、字段和成员属性
- LTE:全面进步 迎接商用