什么是面向对象?

面向对象是一种程序设计的方法论,它将任务或问题分解成相互独立且相互关联的对象,通过定义对象的属性(数据)和行为(方法),来模拟真实世界中事物的特征和交互关系。

在面向对象编程中,对象是程序的基本单元,具有封装性、继承性和多态性三大特点:

1. 封装性(Encapsulation):对象将数据和相关操作封装在一起,只暴露必要的接口来进行交互,隐藏内部细节,便于代码维护和复用。

        创建出来的实例对象会调用类里面的公共成员函数,如果是私有的或受保护的成员函数只能在类内使用。

2. 继承性(Inheritance):对象可以通过继承自其他对象(父类)的属性和行为,实现代码的重用和层次化设计。

        子类可以继承父类的公共的或受保护的成员函数或成员变量来使用,私有的是继承不了的(私有的继承不了是从使用上来讲的,但是内存中是有的)。

3. 多态性(Polymorphism):相同的消息可以被不同的对象接收和处理,提供了灵活性和扩展性。

        多态指同名函数有不同状态,就是函数内部处理动作不一样,使用时首先要有子类继承父类,父类要有虚函数,在子类继承父类时要重写父类的虚函数,把函数体重新定义一遍,通过父类的指针或者引用指向子类的对象,再用子类对象调用父类继承过来的虚函数。所谓多态就是编译器在处理的时候进行动态绑定,在最终调用的时候才会确定子类对象调用的是谁。虚函数=0为纯虚函数,纯虚函数也虚函数的一种,虚函数被定义成纯虚函数,说明迫切要在子类中重写,如果子类不重写这些纯虚函数的话,这些子类就不能实例化,也就是一个抽象类。内部有纯虚函数的类叫抽象类,抽象类是不能实例化的。如果虚函数不是纯虚函数的话,就不用在子类中重写。

        面向对象编程具有抽象、封装、继承和多态等特性,它可以使代码更加模块化、易于理解和扩展,并且能够更好地应对复杂的软件开发需求。

        使用面向对象封装之后的函数的参数较面向过程的函数参数会变少,因为这个参数可以被封装到类内部作为成员变量或成员函数直接使用。

你可能感兴趣的:(设计模式笔记,笔记,学习,设计模式)