소스 검색

上传文件至 '封装1'

Creamo 2 년 전
부모
커밋
97dc98be45
3개의 변경된 파일219개의 추가작업 그리고 0개의 파일을 삭제
  1. 116 0
      封装1/1、封装的意义①.cpp
  2. 60 0
      封装1/2、封装的意义②.cpp
  3. 43 0
      封装1/3、struct和class区别.cpp

+ 116 - 0
封装1/1、封装的意义①.cpp

@@ -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;
+
+}

+ 60 - 0
封装1/2、封装的意义②.cpp

@@ -0,0 +1,60 @@
+//封装的意义②
+
+//类在设计时,可以把属性和行为放在不同的权限下,加以控制
+//访问权限有三种 :
+
+//① public  公共权限
+//② protected  保护权限
+//③ private  私有权限
+
+
+#include <iostream>
+
+//访问权限
+//三种
+//公共权限   public          成员  类内可以访问   类外也可以访问
+//保护权限   protected       成员  类内可以访问   类外不可以访问    儿子也可以访问父亲中保护的内容
+//私有权限   private         成员  类内可以访问   类外不可以访问    儿子不可以访问父亲的私有内容
+ 
+
+class Person
+{
+public:
+	//公共权限
+	std::string m_Name;       //姓名
+
+protected:
+	//保护权限
+	std::string m_Car;        //汽车
+
+private:
+	//私有权限
+	int m_bankPassword;       //银行密码
+
+public:
+	void func()
+	{
+		m_Name = "张三";
+		m_Car = "拖拉机";
+		m_bankPassword = 123456;
+	}
+
+};
+
+int main2()
+{
+
+	//实例化一个具体的对象
+	Person p1;
+
+	p1.m_Name = "李四";
+	//p1.m_Car = "奔驰";          //保护权限的内容,在类外访问不到
+	//p1.m_bankPassword = 123;   //私有权限内容,类外访问不到
+
+	p1.func();
+
+	system("pause");
+
+	return 0;
+
+}

+ 43 - 0
封装1/3、struct和class区别.cpp

@@ -0,0 +1,43 @@
+//4.1.2  struct和class区别
+
+//在C++中 struct 和 class 唯一的区别就在于 默认的访问权限不同
+
+//区别:
+//⚪struct默认权限为公共
+//⚪class 默认权限为私有
+
+#include <iostream>
+
+class C1
+{
+	//默认权限 是 私有 
+	int m_A;
+
+};
+
+struct C2
+{
+	//默认权限 是 公共
+	int m_A;
+
+};
+
+
+int main3()
+{
+	//struct 和 class区别
+	//struct 默认权限是  公共  public
+	//class  默认权限是  私有  private
+
+	C1 c1;
+	//c1.m_A = 100;      //私有权限  在 class  中 类外不可访问
+
+	C2 c2;
+	c2.m_A = 100;        //公共权限  在 struct 中 默认为公共权限
+
+
+	system("pause");
+
+	return 0;
+
+}