|
@@ -0,0 +1,116 @@
|
|
|
+//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;
|
|
|
+
|
|
|
+}
|