面向对象编程的基础知识总结:类与对象概念、成员、声明、定义及对象概念解析

版权申诉
0 下载量 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函数,实现了多态的效果。" 此描述对面向对象的基础知识进行了全面的总结,包括类与对象的概念、封装、继承、多态等内容。通过详细的介绍和举例,帮助读者理解面向对象编程的基本原理和特点,为进一步学习和应用面向对象编程打下基础。