【学习笔记】C++ 核心编程(四)类和对象(上)

【学习笔记】C++ 核心编程(四)类和对象(上),第1张

内容来自小破站《黑马程序员C++》复习自用

【学习笔记】C++ 核心编程(四)类和对象(上)
  • 4 类和对象
    • 4.1 封装
      • 4.1.1 封装的意义(一)
      • 4.1.1 封装的意义(二)
      • 4.1.2 struct和class的区别
      • 4.1.3 成员属性设置为私有

4 类和对象

C++面向对象的三大特性:封装、继承、多态
C++认为,万事万物皆为对象,对象上有其属性和行为
例如:
人可以作为对象,属性有姓名、年龄、身高、体重,行为有走、跑、唱歌、干饭;
车可以作为对象,属性有轮胎、车灯、方向盘,行为有载人、放音乐、飘逸;

具有相同性质的对象,我们可以抽象的成为类,人属于人类,车属于车类。


4.1 封装

封装是C++面向对象的三大特性之一。


4.1.1 封装的意义(一)
  1. 将属性和行为作为一个整体,表现生活中的事务
  2. 将属性和行为加以权限进行控制
语法:class 类名{ 访问权限: 属性 / 行为 };

需求:设计一个圆类,求圆的周长

#include 
using namespace std;
//圆周率
const double PI = 3.14;
//设计一个圆类,求圆的周长
//求圆的周长: 2*PI*半径
//class代表要设计一个类,类后边紧跟着的就是类名称
class Circle
{
	//访问权限
	//公共权限
public:
	//属性:半径
	int m_r;
	//行为:获取圆的周长
	double calculateZC()
	{
		return 2 * PI * m_r;
	}
};
int main() {
	//通过圆类,来创建具体的圆(对象)
	//实例化:通过一个类,创建一个对象的过程
	Circle c1;//Circle是类,c1是具体对象名字 
	//给圆对象的属性进行赋值
	c1.m_r = 10;
	cout << "圆的周长为:" << c1.calculateZC() << endl;

	system("pause");
	return 0;
}

练习案例
需求:设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,可以显示学生的姓名和学号。


#include 
using namespace std;
#include 
//学生类
class student {
public:   //公共权限
	//属性
	string m_name;//姓名
	int m_id;//学号

	//行为:显示姓名学号
	void showStudent() {
		cout << "姓名:" << m_name << endl;
		cout << "学号:" << m_id << endl;
	}
};
int main() {
	//创建一个具体的学生(实例化对象)
	student s1;
	s1.m_name = "Siri";
		s1.m_id = 2025302040;
		//显示学生信息
		s1.showStudent();
	system("pause");
	return 0;
}

除了这种赋值方式,还有一种,可以通过函数的行为来给姓名赋值。


#include 
using namespace std;
#include 
//学生类
class student {
public:   //公共权限
	//属性
	string m_name;//姓名
	int m_id;//学号
	
			 //给姓名赋值
	void setName(string name) {
		m_name = name;
	}
	void setID(int id) {
		m_id = id;
	}
	//行为:显示姓名学号
	void showStudent() {
		cout << "姓名:" << m_name << endl;
		cout << "学号:" << m_id << endl;
	}
};
int main() {
	//创建一个具体的学生(实例化对象)
	student s1;
	s1.setName("Siri");
	s1.setID(2025302040);
		//显示学生信息
		s1.showStudent();
	system("pause");
	return 0;
}


》》》专业术语扩展:》》》

  1. 类中的属性和行为,统一成为成员;
  2. 属性,也称成员属性、成员变量;
  3. 行为,也称成员函数、成员方法;
4.1.1 封装的意义(二)

类在设计的时候,可以把属性和行为放在不同的权限下,加以控制,但是什么时候用什么权限
访问权限有三种:

  1. public 公共权限 类内可以访问,类外可以访问
  2. protected 保护权限 类内可以访问,类外不可以访问(儿子也可以访问父亲中的保护内容)
  3. private 私有权限 类内可以访问,类外不可以访问(儿子不可以访问父亲中的私有内容)
#include 
using namespace std;

class Persion
{
public:				//公共权限
	string m_Name;	//姓名
protected:			//保护权限
	string m_Car;	//汽车
private:
	int m_Password;	//yhk密码

public:   //也可以用private:都属于类内,但是void func()也无法访问了
	void func()
	{
		m_Name = "张三";
		m_Car = "拖拉机";
		m_Password = 123456; //类内可以访问
	}
};
int main() 
{
	//实例化一个具体的对象
	Persion p1;
	p1.m_Name = "里斯";
	p1.m_Car = "Benz";    //保护权限内容,在类外无法访问
	p1.m_Password = 222;  //私有权限内容,在类外无法访问
	system("pause");
	return 0;
}
4.1.2 struct和class的区别

在C++中struct和class唯一的区别就在于【默认的访问权限不同】

  1. struct 默认权限为公共 (死抓科特)
  2. class 默认权限为私有 (克拉斯)
#include 
using namespace std;
class C1   //在上边没有写任何的public权限
{
	int m_A;//默认权限 是 私有
};
struct C2
{
	int m_A;//默认权限 是 公共
};
int main() {
	C1 c1;
	C2 c2;
	c1.m_A = 100;
	c2.m_A = 100;
	system("pause");
	return 0;
}
4.1.3 成员属性设置为私有

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/569312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存