C++ 一些学习笔记(六)类和对象-封装

主要是针对之前学习C的时候一些知识点的遗漏的补充,还有一些我自己觉得比较重要的地方。

本文章的主要内容是关于封装的。

类和对象

C++面向对象的三大特性为:封装、继承、多态
C++认为万事万物皆为对象,对象有其属性和行为

1.封装

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

  • 将属性和行为作为一个整体,表现生活中的事务
    在设计类的时候,属性和行为写在一起,表现事务
    语法:class 类名{访问权限:属性/行为};

类中的属性和行为统称为 成员
属性 又称为成员属性或者成员变量
行为 又可以称为成员函数或者成员方法

设计一个圆类,求圆的周长
圆周长公式:2*PI*半径
const double PI=3.14;
//class代表设计一个类,类后边紧跟着的就是类名称
class Circle{
	//访问权限
public://公共权限

	//属性
	int m_r;//半径
	//行为
	double calculateZC(){//获取圆的周长
		return 2*PI*m_r;	
	}
};

int main(){
//通过圆类,创建具体的圆(对象)
	Circle cl;
//给圆对象的属性进行赋值
	c1.m_r=10;
	cout<<"圆的周长为:"<<cl.calculeteZC()<<end;;
}
设计一个学生类,属性有姓名和学号
可以给姓名和学号赋值,可以显示学生的姓名和学号
class Student{
public:
//属性
	string m_Name;//姓名
	int m_Id;//学号
//行为
	void showStudent(){//显示姓名和学号
		cout<<"姓名"<<m_Name<<"学号"<<m_Id<<endl;
	}

	void setName(string neme){//给姓名赋值
		m_Name=name;
	}
	void setId(int id){//给姓名赋值
		m_Id=id;
	}
}int main(){
//实例化,创建一个具体的学生
	Student s1;
	s1.m_Name="张三";
	s1.m_Id=1;
//显示学生信息
	s1.showStudent();

	Student s2;
	s2.setName("李四");
	s2.setId(1);
	s2.showStudent();

}
  • 将属性和行为加以权限控制
    类在设计时,可以把属性和行为放在不同的权限下加以控制
    访问权限有三类:
    1.public 公共权限 类内可以访问 类外可以访问
    2.protected 保护权限 类内可以访问 类外不可以访问
    3.private 私有权限 类内可以访问 类外不可以访问
class Person{
public://
	string m_Name;
protected:
	string m_Car;
private:
	int m_Password;
}
public:
	void func(){
		m_Name="张三";
		m_Car="拖拉机";
		m_Password=123456;
	}

int main(){
	Person p1;//实例化具体对象

	p1.m_Name="李四";
	p1.m_Car="拖拉机";//保护权限内容,类外访问不到
	p1.m_Password=123;//私有权限内容,类外访问不到
	}

2.struct和class的区别

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

  • struct默认权限为公共
  • class默认权限为私有
class C1{
	int m_A;//默认权限私有
}
struct C2{
	int m_A;//默认权限公共
}
int main(){
	C1 c1;
	C2 c2;
	//c1.m_A=100;//私有不可访问
	c2.m_A=100;
}

3.成员属性设置为私有

优点:

  • 将所有成员属性设置为私有,可以自己控制读写权限
  • 对于写权限,我们可以检测数据的有效性
成员属性设置为私有
class Person{
public:
	void setName(string name){//写姓名
	m_Name=name;
	}
	//读姓名
	void getName(string name){//读姓名
	return m_Name;
	}
	int getAge(){
	//m_Age=0;//初始化为0岁
	return m_Age;
	}
	void setAge(){
	if(age<0||age>150){return;}
	}//检测有效性
	void setLover(string lover){
	m_Lover=lover;
	}
private:
	string m_Name;//可读可写
	int m_Age;//
	string m_Lover;//只写
}
int main(){
	Person p;
	p.setName("张三");
	cout<<"姓名为"<<p.getName()<<endl;
	cout<<"年龄为"<<p.geAgme()<<endl;
	
	p.setLover("xx");
}

在一个类中可以让另一个类作为本类的成员
22 类和对象-封装-设计案例2-点和圆关系中份文件编写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:– JavaScript 中的患者数据管理系统 患者数据管理系统是为医院开发的 node JS 项目。通过使用此系统,您可以轻松访问患者数据,它具有成本效益,可改善患者护理和数据安全性。不仅如此,它还减少了错误范围。在运行项目之前,您需要下载 node.js。 这个患者数据管理项目包含 javascript、node.js 和 CSS。我们必须让服务器监听端口 3000,并使用 JSON 在客户端和服务器之间交换数据。这个项目会不断询问您有关插件更新的信息,因此请保持互联网畅通。此系统允许您执行 crud 操作。在这里,您是系统的管理员。您还可以添加所需的员工人数。此外,您还可以更新患者记录。该系统功能齐全且功能齐全。 要运行此项目,您需要在计算机上安装NodeJS并使用现代浏览器,例如 Google Chrome、  Mozilla Firefox。ReactJS项目中的此项目可免费下载源代码。有关项目演示,请查看下面的图像滑块。 对于手动安装 1.将主项目文件夹解压到任意目录 2.从 cmd 设置项目目录的路径 3. 输入命令“npm install” 4.完成后输入命令“npm start” 5.现在,您将获得一个 localhost:portnumber,并转到该 URL 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值