123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- //4、类和对象
- //C++面向对象的三大特性为 : 封装 、 继承 、 多态
- //C++认为万事万物都皆为对象 , 对象上有其属性和行为
- //例如 :
- //人可以作为对象 , 属性有姓名 、 年龄 、 身高 、 体重 ... , 行为有走 、 跑 、 跳 、 吃饭 、 唱歌 。。。
- //车也可以作为对象 , 属性有轮胎 、 方向盘 、 车灯 ... ,行为有载人 、 放音乐 、 空调
- //具有相同性质的对象 , 我们可以抽象为类 , 人属于人类 , 车属于车类
- //4.1封装
- //4.1.1封装的意义
- //封装是C++面向对象三大特征之一
- //封装的意义 :
- //⚪将属性和行为作为一个整体 , 表现生活中的食物
- //⚪将属性和行为加以权限
- //封装的意义 :
- // 在设计累的时候 , 属性和行为写在一起,表现事物
- // 语法 :class 类名 { 访问权限 : 属性 / 行为 };
- #include <iostream>
- //实例1 : 设计一个园类 , 求圆的周长
- //求圆周长的公式 : 2 * Π * r
- const double Π = 3.14;
- //class 代表设计一个类 , 类后面紧跟着的就是类名称
- class Circle
- {
- //访问权限
- //公共权限
- public:
- //属性
-
- int m_r;
- //行为
- //获取圆的周长
- double calculateZC()
- {
- return 2 * Π * m_r;
- }
- };
- //示例2 :设计一个学生类,属性有姓名和学号 , 可以给姓名和学号赋值 , 可以显示学生的姓名和学号
- class Student
- {
- //权限
- public:
- //类中的 属性 和 行为 我们统称为 成员
- //属性 成员属性 成员变量
- //行为 成员函数 成员方法
-
- //属性
- std::string m_Name; //姓名
- int m_ID; //学号
- //行为
- //显示姓名和学号
- void showStudent()
- {
- std::cout << "姓名 :" << m_Name << "学号 :" << m_ID << std::endl;
- }
- //给姓名赋值
- void setName(std::string name)
- {
- m_Name = name;
- }
- //给学号赋值
- void setID(int ID)
- {
- m_ID = ID;
- }
- };
- int main1()
- {
- //通过圆类 , 创建一个具体的圆(对象)
- //实例化 (通过一个类 创建一个对象的过程)
- Circle c1;
- //给圆对象 的 属性进行赋值
- c1.m_r = 10;
- std::cout << "圆的周长为 : " << c1.calculateZC() << std::endl;
- //创建一个具体的学生 实例化对象
- Student s1;
- //给s1对象 进行属性赋值操作
- //s1.m_Name = "张三";
- s1.setName("张三");
- //s1.m_ID = 1;
- s1.setID(1);
- s1.showStudent();
- //显示学生信息
- Student s2;
- s2.m_Name = "李四";
- s2.m_ID = 2;
- s2.showStudent();
- system("pause");
- return 0;
- }
|