1、面向过程编程(Procedural Oriented Programming)
它将程序分解为一系列相关联的过程或函数,每个过程负责执行特定的任务,并通过输入输出与其他过程交互,核心在于过程的调用和参数的传递。
2、面向切面编程(Aspect Oriented Programming)
它是一种解决面向对象编程中横切关注点问题的一种编程方式,跨越多对象或模块的功能,例如:日志记录、事务管理、性能监控、安全性检查、缓存管理、异常处理、权限控制等。
3、面向对象编程(Object Oriented Programming)
它将现实世界的事务抽象形成对象,每个对象都具有属性与方法,对象之间通过消息传递进行交互,从而实现程序的功能。
1、面向对象的三大基本特征:封装、继承、多态
封装:就是把显示世界中的客观事物抽象成一个类,类中存放属性与方法。
继承:子类可以继承父类,可以把父类的方法和属性都继承过来,主要是为了代码复用。与现实世界中儿子继承父亲的财产、样貌、行为等一样。
多态:就是同一个操作作用域不同的对象,可以有不同的解释,产生不同的执行结果。
实现运行期的多态需要满足三个条件:
- 有类继承或者接口实现
- 子类要重写父类的方法
- 父类的引用指向子类的对象
2、方法的重载与重写
重载(overload):类中的函数的名称相同,参数个数、类型、顺序不同。可以有不同的返回类型和访问修饰符,可以抛出不同的异常,可以根据参数区别不同函数。
编译时的多态性,在编译时根据参数类型或数量选择合适的方法执行。
重写(override):子类对父类函数的重新实现,函数名与参数列表相同,行为不同。
运行时的多态性,在运行时根据对象实际类型决定调用哪个方法,通过虚函数和动态绑定实现。
3、面向对象的五大基本原则
单一职责原则:一个类最好只做一件事情,提高可维护性,减少代码修改的影响。
开放封闭原则:对扩展开放,对修改封闭。促进可扩展性,降低风险。
里氏替换原则:子类必须能替换其基类,提高代码的可互换性,增加代码可重用性。
依赖倒置原则:程序依赖于抽象接口,而不是具体实现。提高代码可测试性,减少耦合。
接口隔离原则:使用多个小专门的接口,而不使用大接口。减少系统耦合,提高灵活性稳定性。