还剩38页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课件-第2章•面向对象程序设计语言概述•C语言中的面向对象特性•C语言中的类和对象•C语言中的封装目•C语言中的继承•C语言中的多态录contents01面向对象程序设计语言概述什么是面向对象程序设计面向对象程序设计是一种编程范式,它以对象为中心,将数据和操作封装在一起,通过类和对象来构建软件系统它强调将现实世界中的事物抽象为对象,每个对象都有其属性(状态)和方法(行为),并通过类来定义对象的共性特征,通过继承和多态等机制实现代码的重用和扩展面向对象程序设计的特点封装多态将数据和操作封装在一起,形允许一个接口多种形态存在,成对象,隐藏对象的内部细节,即不同的对象对同一消息可以只通过对象提供的接口进行交有不同的实现方式互继承抽象通过继承实现代码的重用,子通过抽象来定义接口和抽象类,类可以继承父类的属性和方法,隐藏实现细节,只提供必要的并可以扩展或覆盖它们信息和操作面向对象程序设计语言的发展面向对象程序设计语言的发展可随着计算机技术的不断发展,越面向对象程序设计语言的发展推以追溯到20世纪60年代,最早来越多的编程语言开始支持面向动了软件工程领域的发展,使得的面向对象语言是Simula对象特性,如C、Java、Python软件的开发更加高效、可靠和可等维护02C语言中的面向对象特性类和对象总结词类是对象的抽象,定义了一组对象的共同属性和方法对象是类的实例,具有类所定义的属性和行为详细描述在C语言中,可以通过结构体(struct)来模拟类的概念结构体可以包含多个不同类型的成员变量,以及与这些变量相关的方法(函数)这些方法可以访问和修改结构体中的数据,从而模拟面向对象编程中的对象行为封装总结词封装是将对象的属性和方法封装在一起,隐藏对象的内部实现细节,只通过对象的方法来访问和操作对象的属性详细描述在C语言中,可以通过将结构体的成员变量设为私有(使用下划线前缀),以及提供公共的访问函数(也称为getter和setter方法)来模拟封装的概念这样,只有通过这些公共函数才能访问和修改对象的属性,从而保护对象的内部状态不受外部干扰继承总结词继承是从已有的类派生出新的类,新类继承了父类的属性和方法,并可以添加或覆盖父类的属性和方法详细描述在C语言中,可以通过结构体的嵌套来模拟继承的概念一个结构体可以嵌套另一个结构体,从而模拟子类和父类的关系子类可以继承父类的属性和方法,同时也可以添加自己的属性和方法多态总结词详细描述多态是指允许使用父类指针或引用调用子类对象的方在C语言中,可以通过函数指针和虚函数表(vtable)法,使得在运行时根据实际对象的类型来决定调用哪来实现多态的概念通过将父类指针或引用指向子类个方法对象,并使用函数指针来调用相应的方法,可以在运行时动态地确定实际调用的函数,从而实现多态的效果这种机制需要借助虚函数表来实现,虚函数表中存储了每个类实例的方法地址表,通过索引虚函数表可以找到对应的方法地址并执行相应的函数03C语言中的类和对象类的定义和实现总结词类是C语言中面向对象编程的基本单位,用于描述具有相同属性和方法的对象的抽象详细描述在C语言中,类是一种用户自定义的数据类型,用于封装数据和相关操作类的定义包括数据成员(属性)和成员函数(方法),用于实现类的行为类的实现则是通过在类声明后提供函数的具体实现总结词类的定义通常使用关键字“class”,后跟类名和一对大括号,用于包含数据成员和成员函数的声明类的定义和实现•详细描述类定义的一般格式如下类的定义和实现```cclass类名{数据类型成员变量名;类的定义和实现•返回类型成员函数名参数列表;类的定义和实现};```总结词类的实现则是通过在类声明后提供函数的具体实现,包括数据成员的初始化以及成员函数的定义类的定义和实现•详细描述类的实现通常在类声明之后进行,包括初始化数据成员和实现成员函数例如类的定义和实现```cclass MyClass{类的定义和实现int x;void myFunction;类的定义和实现01};02void MyClass:myFunction{类的定义和实现•//函数实现类的定义和实现}```对象的创建和使用总结词对象是类的实例,通过创建类的实例来创建对象总结词对象的使用通常包括调用其成员函数和访问其数据成员详细描述通过对象来调用其成员函数时,需要使用“-”运算符,例如`obj-myFunction;`访问对象的成员变量时,需要使用“.”运算符,例如`obj-x=10;`构造函数和析构函数总结词构造函数是在创建对象时自动调用的函数,用于初始化对象的属性析构函数是在对象销毁时自动调用的函数,用于释放资源详细描述构造函数是在类中定义的特殊类型的成员函数,用于初始化对象的属性构造函数的名称与类名相同,且没有返回类型析构函数也是类中定义的特殊类型的成员函数,用于在对象销毁时释放资源析构函数的名称是在类名前加上“~”符号构造函数和析构函数可以在类声明中直接定义,也可以在类声明后单独定义04C语言中的封装数据封装的概念数据封装是将数据和操作数据的函数数据封装还实现了信息隐藏,使得对捆绑在一起,形成一个独立的实体,象的实现细节对外部不可见,只通过即类的概念明确定义的接口与外部进行交互数据封装能够隐藏对象的内部细节,只通过对象提供的公共接口访问对象的数据,从而提高了数据的安全性和代码的可维护性访问修饰符访问修饰符用于定义类成员的可C提供了三种访问修饰符public成员在类外部可见,可以见性,控制对类成员的访问权限public、private和protected被直接访问;private成员只能在类内部访问;protected成员可以在类内部和派生类中访问类的成员函数类的成员函数是类的行为,与类的成员函数在类内部定义,类的成员函数可以通过对象来类的数据成员相关联只能访问该类的数据成员,不调用,也可以通过类来调用能直接访问其他类的数据成员类的友元函数友元函数是一种特殊的函数,它可以访友元函数不是类的成员,但它可以像成友元函数可以在类的外部定义,也可以问类的私有和保护成员员函数一样访问类的私有和保护成员在类的内部定义05C语言中的继承继承的概念继承是面向对象编程中的一个重要概念,它允许一个类继承另一个类的属性和方法通过继承,子类可以拥有父类的所有属性和方法,并且可以扩展或覆盖它们继承有助于代码重用和实现多态性,使程序更加灵活和可维护继承的方式010203单继承多继承实现继承一个子类只能继承一个父一个子类可以同时继承多子类通过调用父类的方法类的属性和方法个父类的属性和方法来实现继承的属性和方法继承的访问修饰符public protectedprivate子类可以访问父类的公有子类可以访问父类的公有子类只能访问父类的私有成员和保护成员成员继承的构造函数和析构函数构造函数析构函数在创建子类对象时,会自动调用父类的在销毁子类对象时,会自动调用父类的析构造函数如果子类没有显式定义构造构函数如果子类没有显式定义析构函数,函数,则会自动调用父类的默认构造函VS则会自动调用父类的析构函数如果父类数如果父类没有默认构造函数,则需没有析构函数,则需要在子类中显式定义要在子类中显式定义构造函数,并在其析构函数,并在其中调用父类的析构函数中调用父类的构造函数06C语言中的多态多态的概念总结词多态是面向对象编程中的一个重要概念,它允许我们以统一的方式处理不同类型的对象详细描述多态允许我们使用基类的指针或引用调用派生类中重载的函数,实现动态绑定这样,我们可以编写与基类接口兼容的代码,而实际执行的是派生类中的实现虚函数和纯虚函数总结词详细描述虚函数是多态实现的关键,纯虚函数则是抽虚函数在基类中被声明为virtual,并在派生象类中常见的成员函数类中被重写通过基类指针或引用调用虚函数时,将根据实际对象的类型执行相应的函数实现纯虚函数在基类中声明为virtual,但没有实现,派生类必须提供实现含有至少一个纯虚函数的类是抽象类,不能被实例化抽象类和接口的概念总结词详细描述抽象类是多态的体现,接口是一种特殊的抽抽象类是一种特殊的类,其中至少有一个纯象类,定义了一组方法的规范虚函数它不能被实例化,主要用于作为其他类的基类接口是一种抽象类型,定义了一组方法的规范,但没有实现任何类可以实现一个或多个接口,并为其提供实现接口常用于定义一组通用的方法规范,以便不同的类遵循相同的协议THANK YOU感谢观看。