一 面向过程(PO)
例如:把大象放进冰箱这件事? 在面向过程的情况下:就是打开冰箱门,然后将大象放进去,然后关上门。
这个流程比较简单,如果流程复杂,明显可以发现这个并不适合代码的编写,所以就有了面向对象。
二 面向对象(OO)
同样是把大象装进冰箱这件事? 在面向对象的情况下:会把大象和冰箱都当做对象来处理 大象:有放进冰箱的方法 冰箱:有开门关门的方法
实现的时候调用对应的方法即可,每个对象的具体方法实现可能还是面向过程,但是针对整个程序而言,是面向对象的。
二 面向切面(AOP)
面向对象的过程中,对某个对象的方法做补充时,不想破坏原有对象,就可以使用AOP。
C# 面向对象
面向对象 (Object Oriented):封装,继承,多态。
封装:
被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。
抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。
C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。
一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示:
1.public:所有对象都可以访问;
2.private:对象本身在对象内部可以访问;
3.protected:只有该类对象及其子类对象可以访问;
4.internal:同一个程序集的对象可以访问;
5.protected internal:访问限于当前程序集或派生自包含类的类型。继承
继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。
当创建一个类时,程序员不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类,这个新的类被称为派生类。
继承的思想实现了 属于(IS-A) 关系。例如,哺乳动物 属于(IS-A) 动物,狗 属于(IS-A) 哺乳动物,因此狗 属于(IS-A) 动物。
C# 不支持多重继承。但是,您可以使用接口来实现多重继承。多态
多态是同一个行为具有多个不同表现形式或形态的能力。
多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。
多态性可以是静态的或动态的。在静态多态性中,函数的响应是在编译时发生的。在动态多态性中,函数的响应是在运行时发生的。
抽象方法
子类必须有,单各自的实现不同。基类abstract,子类overread。
抽象类不能实例化,只能实例化子类。
父类加约束,可以有方法的实现,子类继承公共的方法,减少代码量。
接口
没有任何具体的实现,全部默认public,不能写访问修饰符。
接口中不能有委托和类。
只是一个约束,没有实现,需要子类继承接口去实现。