面向对象编程的基础知识总结:类与对象概念、成员、声明、定义及对象概念解析
版权申诉
192 浏览量
更新于2024-03-09
收藏 1.54MB PDF 举报
方法。2、对象的声明➢对象的声明语法:类名 对象名;➢比如说类是学生,那么声明一个对象可以这样写:Student stu;3、对象的使用➢使用对象可以通过对象名.成员变量名或者对象名.成员函数名的方式来进行,在 c 中使用点运算符“.”来实现。➢比如说,要输出学生的姓名可以这样写:cout<<stu.name;要调用打印函数可以这样写:stu.print();第二节 封装1、封装的概念➢封装是指把类中的数据(成员变量)和行为(成员函数)包装在一起,对外界隐藏对象的属性和实现细节,只保留有限的接口与外界通信。➢封装的好处:①可以保护数据不被外界随意篡改,提高数据的安全性;②可以隐藏对象的实现细节,简化编程;③可以实现数据的权限管理,只允许需要的部分访问数据。2、封装的实现➢ 封装是通过定义私有成员变量和公有成员函数,来实现对数据的封装。➢私有成员只能在类的内部访问,外部无法访问;公有成员可以在类的外部访问,实现类与外界的通信。➢封装的例子:class Student{private:int id;//学号string name;//姓名float score;//成绩public:void print(){cout<<name<<"的成绩是"<<score<<endl;}};在这个例子中,id、name、score是私有成员,print是公有成员,外部只能通过print函数来访问成绩属性。第三节 继承1、继承的概念➢ 继承是面向对象编程语言中的一种特性,允许一个类(称为子类)继承另一个类(称为父类)的属性和行为,子类可以复用父类的成员变量和成员函数。➢继承的好处:①可以避免重复编写相同的代码,提高代码的复用性;②子类可以在父类的基础上进行扩展,实现新的功能。2、继承的实现➢在 c 中,继承是通过“:”来实现的,语法如下:class 子类名 : 访问权限 父类名{子类新增的成员};➢访问权限一般有三种:public(公有继承)、protected(保护继承)、private(私有继承),分别表示不同的继承方式。默认为私有继承。➢子类可以调用父类的构造函数和析构函数。➢子类可以覆盖父类的成员函数,实现新的功能。3、继承的例子class Person{protected:string name;int age;public:Person(string n,int a):name(n),age(a){}void show(){cout<<"我叫"<<name<<",今年"<<age<<"岁"<<endl;}};class Student:public Person{protected:float score;public:Student(string n,int a,float s):Person(n,a),score(s){}void show(){cout<<"我叫"<<name<<",今年"<<age<<"岁,成绩是"<<score<<endl;}};在这个例子中,Student类继承了Person类的属性和show函数,并新增了成绩属性和show函数。第四节 多态1、多态的概念➢多态是面向对象编程中一个重要的概念,指的是同一个成员函数在不同的对象上有不同的行为。➢在 c 中,多态分为静态多态和动态多态两种。➢静态多态是指函数重载和运算符重载,通过函数名或运算符号相同,参数列表不同来实现。➢动态多态是指虚函数和纯虚函数,通过在基类中声明虚函数,子类覆盖虚函数来实现。2、多态的实现➢在 c 中,通过使用虚函数和纯虚函数来实现多态。➢虚函数是在基类中声明的一个动态绑定的成员函数,子类可以覆盖该函数。➢纯虚函数是在基类中声明的没有实现的虚函数,子类必须覆盖该函数。3、多态的例子class Shape{public:virtual void show(){cout<<"这是一个形状"<<endl;}};class Circle:public Shape{public:void show(){cout<<"这是一个圆形"<<endl;}};class Rectangle:public Shape{public:void show(){cout<<"这是一个矩形"<<endl;}};在这个例子中,Shape类中声明了一个虚函数show,Circle类和Rectangle类都覆盖了show函数,实现了多态的效果。" 此描述对面向对象的基础知识进行了全面的总结,包括类与对象的概念、封装、继承、多态等内容。通过详细的介绍和举例,帮助读者理解面向对象编程的基本原理和特点,为进一步学习和应用面向对象编程打下基础。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-02-16 上传
2022-07-01 上传
2021-03-18 上传
2022-01-30 上传
2020-09-26 上传
562 浏览量
xxpr_ybgg
- 粉丝: 6756
- 资源: 3万+
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程