C++:类和对象-1-封装

1、封装的意义:

意义一:示例1:设计一个圆类,求圆的周长:

#include<iostream>
using namespace std;

const double pi = 3.14;

//设计一个圆类,求圆的周长

//圆求周长的公式:1*pi*半径

//class 代表设计一个类,类后面紧跟着类的名称
class Circle
{
	//访问权限
	//公共权限
public:
	//属性
	int r;

	//行为
	//获取圆的周长
	double calculateZC()
	{
		return 2 * pi * r;
	}
};



int main()
{
	//通过圆类创建一个具体的圆——cl(对象)
	Circle cl;
	//给圆对象 的属性.r进行赋值
	cl.r = 10;

	cout << "圆的周长为:  " << cl.calculateZC() << endl;

	system("pause");
	return 0;
}

意义一:示例2:设计一个学生类,属性有姓名和学号,可以给姓名和学号赋值,可以显示学生的姓名和学号:

#include<iostream>
using namespace std;
#include<string>


//class 代表设计学生类
class Student
{
	//访问权限
	//公共权限
public:

	//类中的属性和行为都称为成员
	//属性:成员属性/成员变量

	//类中的行为:成员函数/成员方法

	//属性
	string Name;
	int Number;

	//行为
	//显示姓名和学号
	void showStudent()
	{
		cout << "姓名为:  " << Name << "\t";
		cout << "学号为:  " << Number << "\t";

	}

	//给姓名赋值
	void setName(string setName)
	{
		Name = setName;
	}

	//给学号赋值
	void setNumber(int setNumber)
	{
		Number = setNumber;
	}
};



int main()
{

	//通过类创建一个具体的——cl(对象):实例化
	Student s1;

	s1.setName("张三");
	s1.setNumber(22207893262);

	Student s2;

	s2.setName("liro");
	s2.setNumber(22204567642);

	s1.showStudent();
	s2.showStudent();


	

	system("pause");
	return 0;
}

#include<iostream>
using namespace std;
#include<string>


//访问权限
//三种
//公共权限  public     成员在类内可以访问  类外也可以访问
//保护权限  protected  成员在类内可以访问  类外不可以访问
//私有权限  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= "拖拉机";    //保护权限  protected  类外不可以访问
	//p1.m_Password = 123456;    //私有权限  private    类外不可以访问
	

	system("pause");
	return 0;
}

2、重点:class和struct的区别:

3、成员属性设置为私有

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
#include<string>


//成员属性设置私有
//1、可以自己控制读写权限
//2、对于写可以检测数据有效性

//人类
class Person
{
public://设置姓名
	void setName(string Name)
	{
		m_Name = Name;

	}
	//获取姓名
	string getName()
	{
		return m_Name;
	}

	//获取年龄
	int getAge()
	{
		return m_Age;
	}

	//设置年龄(0~150)
	void setAge(int Age)
	{
		if (Age < 0 || Age>150)
		{
			cout << "年龄输入有误,赋值失败" << endl;
			return;
		}
		m_Age = Age;
	}

	//设置偶像
	void setIdol(string idol)
	{
		m_Idol = idol;
	}
private:
	string m_Name; //姓名   可读可写

	int m_Age=18;  //年龄   只读     也可以写  (年龄必须在0到150之间)

	string m_Idol;  //偶像   只写

	//访问权限

public:


};



int main()
{

	Person p;

	p.setName("张三");

	cout << "姓名:  " << p.getName() << endl;

	//设置年龄
	 p.setAge(160);
	//p.m_Age=20;
	// 
	//获取年龄
	cout << "年龄:  " << p.getAge() << endl;

	//偶像设置
	p.setIdol("小明");//只写

	//cout << "偶像:  " << p.setIdol() << endl;  //不可读




	system("pause");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值