一、面向对象概念
面向对象是一种符合人类思维习惯的编程思想,是基于结构分析的、以数据为中心的程序设计。把解决的问题按照一定的规则划分为许多独立的对象,通过调用对象的方法来解决问题。与原来面向过程的程序设计不同(通过调用函数)。
类(class)就是指具有相同性质和功能的整体
客观对象(object),从概念层面讲,就是某种客观事物的抽象(或功能) 抽象原则包括数据抽象和过程抽象两个方面:数据抽象就是定义对象的属性;过程抽象就是定义对象的操作。
类的三大特性:封装、继承和多态。
封装就是把客观对象的属性和行为封装起来,不需要让外界指导具体的实现实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。
继承是描述类与类之间的关系,通过继承在无需重新改写原来的类的情况下,对原有类的功能进行扩展。继承可以避免代码复制和相关的代码维护等问题。
多态建立在继承的基础上,允许出现重名现象,使得同一个属性和方法在不同的类中具有不同的定义。
二、类和对象
类(class)是C#语言的核心,C#的一切类型都是类,所有的语句都必须位于类内。
类是一个数据结构,类定义数据类型的数据(字段)和行为(方法和其他函数成员)。
类创建的实例就是类的对象。
1. 类的声明
[特性]
[类修饰符][partial]class 类名 [类型形参] [: 基类或接口[类型形参约束]]
{
类体
}[;]
2. 类的成员
字段:是被视为类的一部分的对象实例,通常保存类数据。
属性:一种特殊的方法,可以为类字段提供保护,避免字段在对象不知道的情况下被更改。 方法:定义可以执行的操作。
构造函数:是在第一次创建对象时调用的方法,通常用于初始化对象的数据。
析构函数:通常用于确保对象需要释放的所有资源都得到了适当的处理。
3. 创建和使用对象
类名 对象名 = new 类名([参数表]);
创建类的对象、创建类的实例、实例化类等说法是等价的,都说明以类为模板生成了一个对象的操作
类的对象使用“.”运算符来引用类的成员
4. 类的访问修饰符
通过访问修饰符,可实现如下几点:
(1)限制类只有声明类的程序或命名空间才能使用类。
(2)限制类成员只有派生类才能使用它们。
(3)限制类成员只有当前命名空间或程序中的类才能使用它们。
C#中使用如下访问修饰符:public(公共)、private(私有)、internal(内部)、protected(受保护)。
类和成员的默认修饰符
类默认为internal访问修饰符。 构造函数默认为public访问修饰符。
析构函数不能显式使用访问修饰符且默认为private访问修饰符。
类的成员默认访问修饰符为private。
嵌套类型的默认访问修饰符为private。
特别:派生类的可访问性不能高于基类。成员的可访问性决不能高于包含类的可访问性。
三、嵌套类
类内声明的类称为内部类(internal class)或者嵌套类(nested class)。
在编译单元或命名空间内声明的类称为顶级类,也称包含类或者非嵌套类型(non-nested class)
四、分部类
分部类型(partial type)可以将类(以及结构和接口)划分为多个部分,存储在不同的源文件中,以便于开发和维护。
使用类修饰符partial,用来实现通过多个部分来定义一个类。