C++ 类与对象:封装

前言:

人:

        属性:身高,体重,出生时间,家庭地址等;

        行为:走路,刷题,刷视频,追剧等;

封装的作用:将对象的属性与行为结合起来,共同表示一个整体,而非 “植物人”--只有属性没有行为 ,而是一个真正的人;

封装的格式:

class{权限 属性 行为(函数)}

权限分为三种:

        private:私有,(类内可以调用,在类外无法进行操作)

        protected:保护,(类内可以调用,在类外无法进行操作)

        public:公开,(类内类外都可以随意调用)

注意:

1.封装使用struct 以及 class 都是可以的,语法一致;

唯一的区别在于:struct默认权限为 公开,class默认权限为 私有;

 protected与private的区别:

        涉及到继承;

以下以一个例子说明:父亲有一辆车和银行卡,其中车设置权限为保护,而不希望儿子拿银行卡乱花,因此将银行卡的密码设置为私有;

那么他的儿子,如果想要开车可以拿上钥匙开走,而外人不可以(不然就是违法行为);

但是他的儿子无法拿到银行卡的密码,也就不能使用银行卡,同样外人就更不可能拿到密码了;

封装的具体实现:

        设计一个学生类,其中包含了他的名字(name)、学号(id)以及学分(credit),并且设计行为,使得可以查看并且修改名字、学号、学分;

//学生类 可对名字以及学号进行赋值,也可以显示学号和名字,但是不可以直接调用名字以及学号
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
class student {
private:
	//类型
	string name;
	string id;
	int credit;
public:
	//行为
	void setcredit(int a_credit) {//设置学分
		credit = a_credit;
	}
	void setname(string a_name) {//设置名字
		name = a_name;
	}
	void setstudentid(string a_studentid) {//设置学号
		id = a_studentid;
	}
	int getcredit() {//获取学分
		return credit;
	}
	string getname() {//获取名字
		return name;
	}
	string getstudentid() {//获取学号
		return id;
	}
};
int main() {
	student student1;
	string a_name, a_studentid;
	int a_credit;
	cout << "请分别输入学生:名字 学号 学分" << endl;
	cin >> a_name >> a_studentid>>a_credit;
	student1.setname(a_name);
	student1.setstudentid(a_studentid);
	student1.setcredit(a_credit);
	cout << "学生 : " << student1.getname() << endl;
	cout << "学号 : " << student1.getstudentid() << endl;
	cout << "学分 : " << student1.getcredit() << endl;
	return 0;
}

封装属性设置为私密:

在封装时,属性最好设置为私密,然后通过行为(函数)来控制对属性的权限--是否可以查看或者修改,以免造成误操作;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值