C#面向对象学习连载(一)
面向对象学习(一)——基础术语篇
一、 对象
对象是具有数据、行为和标识的三部分编程结构。对象的数据包含在对象的字段、属性、事件中。对象的行为则由对象的方法和接口定义。对象通过classe和struts定义。对象通过标识来区分是否相同。对象都是从类和结构中定义的模板实例化得到。均继承于Object类。
二、 类
类定义了数据类型的数据和行为。可以根据这些来创建类的实例化对象。类支持继承但不可以多继承。类属于引用对象。最终类可以有很多个基类(类继承基类而导致)。可以实现多个接口。类和对象本质有不同,类是对象的类型,对象是类的实例。
三、 分部类
分部类可以将类、结构、或接口的定义拆分到两个或多个源文件中,每个源文件都包括类定义的一部分,编译时把所有部分组合起来。使用partial定义。
四、 结构
结构:定义基本于类相同,结构声明时,如果字段不是const或static,就无法初始化。结构不可以声明默认的构造函数(无参构造函数)或析构函数。可以声明带有参数的构造函数。结构副本由编译器自动创建和销毁,故不需要。结构不可以从类或其他结构继承。属于值类型,结构实例化不可以使用new,不可以继承,直接继承自System.ValueType。可以实现接口。
五、 继承
类继承通过:号定义,:号后为要继承的单一的基类。由基类派生的类将会获得基类所有非私数据和行为(方法)以及派生类为自己定义的所有其它数据或行为(方法),所以派生类有两个有效类型:派生类型和基类类型。
六、 抽象类
使用abstract定义用来继承的类和成员。抽象类不可以实例化,用来提供多个派生类可以共享的基类的公共定义(有点类似接口的意思),抽象类可以定义抽象方法,用abstract定义,但不可以有方法的实现。由抽象类派生的类必须实现抽象方法。
七、 密封类
使用sealed关键字来定义防止继承以前标记的为virtual的类或某些成员。密封类主要用来防止派生。
八、 多态
一个类可以用作多种类型,可以作自己的类型,可以做基类,可以实现接口时用作任何接口类型。
九、 接口
接口使用interface定义,可以描述属于任何类或结构的一组相关行为,可由方法、属性、事件、索引器或这四种成员类型的任何组合构成。接口不可以包含字段,必须为公共的。可以同时继承多个接口,只能继承到方法名称和签名。
十、 类成员
包括字段、属性、方法、事件、运算符、索引器、构造函数、析构函数、嵌套类型。
十一、 方法
方法包括一些类语句的代码块,方法在类或结构中声明,需要指定访问级别,返回值,方法名称以及任何方法参数。
十二、 构造函数
类和结构可以有多个接受不同参数的构造函数,可以使得可以设置默认值,限制实例化等功能。
十三、 析构函数
只能对类定义析构函数,并且一个类的析构函数唯一,无法继承和重载,无法调用,无修饰符和参数。
十四、 字段
包含在类或结构中的对象和值,字段可以使类和结构封装数据。一般用private,通过方法、属性或索引器访问字段。
十五、 常量
类和结构可以将常数声明为成员,用const修饰。
十六、 嵌套类型
在类或结构中定义的类型为嵌套类型,默认为private可以设置为其它修饰符,
十七、 静态类
静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数,静态类成员可以用于分离独立于任何对象标识的数据和行为。